Posts from January, 2011
No comment yet
January 29th, 2011

Look & Feel:


No comment yet
January 27th, 2011



No comment yet
January 24th, 2011


No comment yet
January 22nd, 2011

It is from a presentation I gonna make next week:

No comment yet
January 22nd, 2011

Though I have a good bet on how long the current Chinese regime will last, any business should not make their decision based on political changes. It has a great uncertainty on which political disturbance will turn into storm. Thus, business should never be a leader of political change, rather, they should prepare for it, but only be the follower of political change. From that perspective, it is important for Facebook to enter China now than any time later. But, from the past experience, there are a few things Facebook can do better than its predecessors.

1. Don't incorporate with local companies

It never works to incorporate with local companies. Mostly, if you incorporate with established company, you will be screwed up sooner or later. That happened to McDonnell Douglas, it will happen to anyone. It is always a good rule of never trusting any local cooperators or any contracts with them. It is common to use power (political or money) rather than law & contract to secure your business. However, it is OK to buy a local company. Yes, Ebay China is an epic failure, but it was more due to the inability of local management rather than the purchasing decision. Yahoo China is doing good in terms of financial outcome (Alibaba generates tons of money for them). I won't call Amazon China a success, but they are in good shape today. It will cost Facebook much less to purchase a local company in China rather than grow the user base all by themselves (Facebook is not in a good time to acquire social network user from scratch). It should be made clear that the sole purpose of the purchasing is to acquire user base and some local sales/engineering forces rather than the product.

2. There are rainmakers and they work

Goldman Sachs has a deep connection with rainmakers in China. With these connections, Facebook can pitch to elders that they can do censorship and be willing of doing it, through a different strategy. It would be a good take if local rainmakers in China become share-holders with Facebook through Goldman Sachs. The aligned interests may give Facebook a very good up-take.

3. The censorship strategy

The most valuable asset of Facebook is people on it. It would be very unwise to have a local Chinese version that isolated with main site. The Facebook China site should be able to make friend requests to main site users, view and install 3rd party applications of main site and view pages of main site, all with self-censorship system. It wouldn't be that hard technically speaking. The China site can be built upon Facebook Platform API (possibly do some relay through unblocked IPs), and the censorship system can be deployed in China site end without compromising any main site functionalities. Any 3rd party applications interested in Chinese market can be deployed with a simple geographical detector that redirects to different login page if the IP comes from China. It is very valuable for Facebook to provide Platform API to local Chinese companies as well.

4. It is not always bad to partner with local companies

Partnership with local companies is not always bad. Google's several local partnership turns out to be beneficial before its disrupts with Chinese government. You should be extremely careful, but it can be a good thing. I'd imagine that Sina's microblogging service would be very excited about using Facebook Connect, so does thousands of other Chinese websites.

5. Be patient

Though it is possible to circumventing the censorship restrictions, Chinese government can be troublesome - they change their attitudes all the time. It would take Facebook years to catch up with their local competitors in terms of service quality. But it is much important to establish existence alone in China.

No comment yet
January 13rd, 2011

I've developed ccv for about a good of year. In the beginning of September, I've set out the goal to finish 4 important applications in ccv: 1). a key-point detection/matching algorithm; 2). an object detection algorithm; 3). text detection algorithm; 4). 3d reconstruction algorithm. Now, the first two have already finished and released, and the development since has been stagnated for about two months, it is a good time to recap some of my thought on this project and what's the direction it will end up to.

ccv suppose to solve several problems in OpenCV. That means, modern/clear API interface, new compiler support/benchmarking, new architecture support, application-oriented development (only implement winning algorithms) and the dedication to open platform. Thus, ccv doesn't support Windows OS at all, and only works/targeting at 64-bit *nix OS. It also branded with new memory management routine which would "reuse" intermediate computations. All that are good.

But there are several problems to ccv, too. Since ccv was designed with server-side usage in mind, it is really not fit into portable device despite the small code-base. ccv's default behavior tends to use more memory (for caching intermediate result). Also, it was optimized for Intel x64 architecture and have a large dependency on various softwares (FFTW etc.). The dedication to open platform such as OpenCL is causing problem too, because no one in GPGPU community seriously work on applications with OpenCL, and the performance variation is even bigger than CUDA.

I will stop reflection here and list the new year's goal for ccv.

1). It will support RPC over HTTP, thus, enable users to use ccv just as easy as compile/running/making HTTP requests;

2). It will support portable devices (iOS and Android), using less memory with it (disable cache on-fly), with graceful dowgraded performance when depended library is not available (work, but slow without FFTW or cBLAS);

3). Migrating to CUDA/C interface instead of OpenCL;

4). Support of MPI/Hadoop;

Overall, ccv will keep its focus on server-side computation while expects to have modest performance on portable devices.