måndag 2 november 2009

The goal of Google Wave

What is really the goal of Google Wave?

Is it to create a replacement for email?

Google have invited developers very early into the product process, long before most companies would open up access. I would say it is a form of Agile development. You get quick feedback on functionality, which makes it easier to find out what is really wanted.

I think Google doesn't really care what Google Wave is. They want to do something that people wants to use, and it doesn't really matter what it is as long as it gets popular. Because of that, the actual requirement specification is impossible to freeze early.

By involving users and developers this early, the Wave will have the possibility to evolve in a way that noone had anticipated.

Wave has some new ideas, or at least re-invented old ones. It is when you combine new ideas that real inventions are born. The type that few could have foreseen.

It will be interesting to see where this will lead. Will it be the next paradigm of Internet usage, or will be just another mail system?

fredag 9 oktober 2009

Uploading a mind to a computer and the art of music

A friend of mine, interested in the ultimate listening experience of music, once thought about what it would mean if you could upload your mind to a computer. So we had a discussion about that. The first though was that you could get rid of a number of analog transformations that added noise to the signal. That is, the music could be fed directly to the (simulated) ear nerves. And so you would get a totally loss-free music experience.

But why stop it at that? When you enjoy a piece of music, there is some kind of mechanism in the brain that do the analysis of the music, which in turns generates the pleasing feeling. Why not directly stimulate this pleasure mechanism? That means you don't need real music any more. Another problem with an uploaded mind could be that it may have almost perfect memory. I believe that surprise is one important part of music. Again, this shouldn't really be a problem if you can simply stimulate the surprise handling mechanisms, and no real surprises are needed.

But then you may as well take it to the next step. Why not directly stimulate the pleasure generating part of the brain, and get exactly the same satisfaction as when you listen to good music?

It can be questioned whether it is the actual experience of pleasure that is the important thing, or the memory of this experience. Why not skip the whole thing about stimulating pleasure, and instead plant a modified memory of having had the pleasure?

Somehow, this doesn't look attractive to me. But then, the technology of uploading probably isn't going to be available for quite a while yet.

lördag 3 oktober 2009

Google Wave and games?

There are many people who use email to send funny pictures and movies. It is not unusual for a film clip to come back again after a year, when it has spun around "on the Internet".

With Google Wave you can also attach games (in the form of extensions). I'm convinced that there will be will be a lot of people around the world who develop various funny things, which will then spread around on the Internet. Not only that, Google Wave supports multilayer games in real time. It is impossible to predict how these things will unfold, but it would not surprise me if many people that now send videos and pictures will feel compelled to switch to Google Wave so as not be left out.

This principle, to release forces free on the Internet, is extremely potent. There is an enormous creativity in "the world", waiting to be tapped. 20 years ago I started an experiment in the form of an online multiplayer adventure game where participants (after some effort) could extend the same game. It did not take long until the whole world (in the game) literally exploded by the most extraordinary ideas that I never could have imagined.

Of course, I really hope that there will be no problems with viruses etc. From the beginning, Microsoft Windows, Internet browsers and Office applications allowed almost anything do be done by scripts. Because of viruses and other types of malicious software, it is today severely restricted. In my dreams, I hope the day has now come where there is a trusted platform.

torsdag 1 oktober 2009

Google Wave and obstacles

It would be nice if all the blogs and news articles on the internet is made as Waves. Comments and responses can then be followed up in your Wave your reader without having to locate the original page. Not to mention how easy it is to add friends to the discussion.

But precisely this may also be a problem for Google Wave. A newspaper depends on their ads, and wants the users to return as much as possible. Wave reduces the need, which may mean that the newspaper chose not to use the Wave technology to publish articles.

The same problem may exist for big bloggers who earn money on their advertising.

söndag 20 september 2009

Why Google Chrome?

Why are Google creating yet another web reader? There are already a couple of them in the market. Is it to get control over the end users? Some fear that Google will use it to be able to sell even more advertising.

I don't think that is the primary reason. Indirectly, yes, but not in a direct way. Google wants people to use the web more, and it certainly looks like it will be very big in the future. There are two interesting features with Google Chrome: Improved navigation and improved Java Script execution.

Improved navigation (using the Omnibox as well as the new tab page), will make it easier for users to find what they want and have them stay longer, browsing the world.

It is not obvious why Google spend a lot of effort on improved Javascript execution speed. However, when you consider O3D, you get a hint what it is all about. O3D is a plugin that supports 3D graphics using the hardware acceleration of the graphic cards. This plugin use Javascript for execution, and if it will become a success, it is not acceptable with slow applications. The hope is that there will be more 3D games available online, where you don't have to install anything. You simply execute them on the web. If these games only work good enough on Google Chrome, guess what is going to happen? All other web browse suppliers will have to improve the Javascript engine execution. That way, Google wins even if people use other web browsers. That is, people stay more on the internet.

And then, Google Chrome pushes html 5, which will even further improve web browsing.

Using Subversion in big projects

Using Subversion in big projects

Requirements on the Subversion setup

  1. It shall support an integration phase, where selected sub components are merged into one result.
  2. The sub components shall be possible to develop independently on the main application.
  3. The merged result shall be saved henceforth.
  4. It shall be possible to take a selected merged result and afterwards find out what it was integrated from; what the versions of the sub components are.
  5. All users of the application shall automatically get the same versions of the cub components, without having to do anything.

Suggested folder structure

This example project consists of one or more applications, where each one uses the sub components in Modules. Notice that the sub components in Module each have the usual branchestags and trunk folders. The idea is that a release of a sub component is defined using a tag, or R1 in this example. Main projects should only refer to to the tags R1, etc, not to the trunk of a sub component.


If this project would have been check out from the BigProject level, each application would be able to refer to the sub components in the Modules using relative paths. However, the reference would depend on the tag names (R1, etc). Every time we would want to use a new release of a sub component, the source code in the main application would have to be changed so as to refer to the new tag.


Instead, a checkout of Application1 shall be done from trunk. Let's say it is called Application1. This folder will then have the property "svn:externals" added. This external definition will add one or more sub components from the Modules folder as a sub folder to the checked out project (Application1). The folder structure will thus look as follows. Notice that Core and Module1 look like they are part of the Application1 project.

The externals definition used for this are as follows. The peg revision was 28 in this example, but that of course depends on what version the sub components were released.
^/BigProject/Core/tags/R1@28 Core
^/BigProject/Module1/tags/R1@28 Module1
Notes
  • Always use version number reference for externals, using peg revision format. That is, suffix the source path with "@" and the revision number. Otherwise, if a module is renamed or moved elsewhere, it can no longer be referenced. This is needed even if it is a reference to a tags item.
  • The externals can be in the same repository or another one. If it is in the same repository, use the relative repository path address "^/Module1/tags/R1" for example.

Comments are welcome!

Lars Pensjö 2009-09-20


onsdag 19 augusti 2009

Cloud computing

There is a famous quote, usually misattributed to Thomas J. Watson at IBM:
I think there is a world market for maybe five computers.
With the development of cloud computing, the trend is again for using central resources instead of distributed computing. Maybe we end up with 5 major suppliers, in which case the above quote turns out to have an element of truth.