Google changes its approach to China

In a change of their current policy of providing filtered content in China, Google has decided to stand against the Chinese government and remove all filters on their search results. The reason mentioned for their policy change was a grave web-based attack against the accounts of human rights leaders.

I think that this is a honorable decision, and all free countries should support such an initiative that aims at making the web more democratic. After all, I think that if we can’t make the whole world a democratic place, we can at least try to do the right thing with use of technology.

See the full announcement in the Google blog.

First Impressions of Google Wave

Google wave was introduced in the last I/O conference (2009) by Google as  a new platform for communication. A platform using web 2.0 concepts, and providing an array of features that has not been available in other platforms.

I received an invitation to use Google wave and decided to take a quick look. Although some of the features of the product are impressive, there are more than a few that are annoying, so I don’t know if the future of this tool is so interesting anymore.

  • Speed: I found the performance of Google wave to be less than desirable. Searches (especially for public documents) take a long time. Loading of documents also take a lot of time. Maybe this could be solved by showing only small parts of a wave instead of loading everything.
  • Interface: the interface is unconventional. While one may get used to it after some time, it is difficult to new users to navigate. Compare this with a web site like twitter, that is easy for anyone to understand.
  • Extensions: there is an extensions protocol that allow programmers to create new functionality. However, I found it hard to find information on how to use these extensions effectively. Even installing extensions is not so clear at the beginning.
  • Compatibility: I expected that you could integrate Google wave seamlessly to Gmail and Gtalk at least. It doesn’t seem to be so. I am still trying to make this work.

It looks like Gwave would be interesting for a group of people that decided to collaborate on the platform. But I think that integrating email and other tools into Google wave is more complicated than it should be. Or maybe I just didn’t get it — but if that is the case there is a lot of people currently in this situation.

How to Create a Duplicate Row in Oracle

When working with Oracle databases, it is sometimes interesting to create a duplicate row of a table. Most of the times this happens when I am testing something on an application and need to tweak one of the entries in a table.

There is a standard SQL trick to duplicate elements of a table that can be used in an Oracle database. I am showing this here because it can be of interest for other people that have the experience of working in an Oracle environment.

The basic idea behind this technique is just to create a temporary table that will hold the data only during the time necessary to make the required modifications. Since the table is created immediately, the inserted content will make the table have all columns of the original table.

Suppose that the following returns non null:

select * from myTable where myKey=8572

Then the required code looks something like the following:

EXECUTE IMMEDIATE
CREATE TABLE temp_table AS SELECT * FROM myTable where myField=8572
UPDATE temp_table SET anotherField='AA'
INSERT INTO quote SELECT * FROM temp_table
DROP TABLE temp_table

With this simple trick one can duplicate any row and modify it to hold the required values.


Further Reading

A comprehensive book on Oracle is Oracle Essentials by Greenwald et al. Here is another Oracle book that is worth reading to get a better idea of how it works.