<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>李保存 &#187; Online-Service</title>
	<atom:link href="http://libaocun.com/tag/online-service/feed" rel="self" type="application/rss+xml" />
	<link>http://libaocun.com</link>
	<description>Think globally, act locally.</description>
	<lastBuildDate>Fri, 02 Jul 2010 07:27:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>鸟瞰淘宝开放平台</title>
		<link>http://libaocun.com/top-at-a-glance</link>
		<comments>http://libaocun.com/top-at-a-glance#comments</comments>
		<pubDate>Thu, 12 Nov 2009 08:05:45 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[Chinese - 中文]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[Online-Service]]></category>
		<category><![CDATA[THINK]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=317</guid>
		<description><![CDATA[概述 
Taobao Open Platform(TOP)，淘宝开放平台，是淘宝将一些（不是全部）数据（店铺，商品等）通过编程接口开放给开发者。说简单点是这样，一般我们大家都是在网页里面点点点，来装修店铺，买卖东西的，是人肉通过鼠标和键盘完成的。TOP API，可以帮助大家用程序来完成同样的事情。
目标
该文主要回答一下几个问题：
1) 淘宝为什么开放平台？对于开发者意味着什么？
2) 开放了些什么东东？
3) 如何写一个简单的基于开放平台应用？
淘宝开放的缘由
Taobao经过几年的发展，已经成为国内X2C的头块品牌。它发起并完善了广大的网商，用户，以及与之相关的支付，物流，信用等系统。现在基本无人不淘宝。我的一位同事，所有的东西基本上都在taobao上买，还有一位朋友一大爱好就是周末在taobao上买东西。
但淘宝已经差不多到了不得不开放的地步。在内部，大的卖家渴望走出去，店主渴望以某种方式在300w个网店中脱颖而出，各种购买方式层出不穷，团购、限时拍卖等；在外部，社区、sns、购物搜索已经开始直接或间接涉足X2C市场。面对这么多元化的需求，淘宝自己去满足，肯定会力不从心；视而不见，那会引起积怨，累计到一定程度，必然有后来者取而代之。那怎么办？简单。既然这个钱，我不想赚，那就帮别人去赚，但你们得围绕着我来玩。开放应运而生。如果要看fancy版本的同样解释，请看博文：
小前端、大后台 路鹏（淘宝副总裁）
业务方向
现在淘宝主推三大业务方向：独立网店、社区电子商务化、第三方开发的工具海。
· 淘宝不讳言独立网店，真是很令人佩服。独立网店的样品工程就是优衣库，基本思路就是网站的域名和UI是独立网店的，其他的东西都是淘宝的，比如用户、支付、商品信息等。ShopEx在这方面是淘宝的合作伙伴。
· 社区电子商务化。简单来说，就是在bbs（如天涯）和sns（如人人网）中通过TOP API展示淘宝上商品，一但成交，大家分钱。
· 工具海。做垂直行业的商家管理工具，卖给旺铺卖家。
当然还有其他。参考：TOP业务方向
盈利模式
光炒概念，没有盈利模式的事情，我一向是只看不碰。那大多只是烧钱者的游戏，一般人玩儿不起。淘宝开放还是有比较清楚的变现模式的（包括但不限于）：
· 淘宝客佣金。淘宝客是按成交计费的，CPA模式。而且API中允许用户加入一些自定义数据，用于确定购买行为过程中的贡献方，使得分享利润成为可能。以前写过篇文章，就提到分享利润的一个应用。
· 插件分成。插件分为店铺管理插件和淘江湖SNS平台插件。前者是方便管理店铺用的，后者偏重娱乐性，概念类似Facebook的应用。
· 软件销售。C/S模式，或者ShopEx独立网店大多属于这种模式。
· 传统广告。比如你调用淘宝API生成网页，加Google AdSense进入，也是可以的。
参考：TOP盈利模式
API
参考：TOP API文档
API/角色
六个基本角色，权限从低到高依次为：公开查询应用、买家应用、卖家应用、商家应用、高级应用、专业应用。较高角色的权限包含较低角色的权限。
还有三个独立角色，社区应用、媒体应用、淘宝客应用。相互独立，与六个基本角色不存在依赖关系。
API/分类
API操作的对象，有如下11种：用户，产品，类目，商品，交易，评价，物流，店铺，淘宝客，淘江湖(v=2.0)，图片空间。
API基本的命名规则是&#60;namespace&#62;.&#60;object&#62;.&#60;action&#62;，如taobao.item.get用于获取单个商品的详细信息。
API/如何进行API调用
基于REST协议的API。调用接口地址是：
测试环境地址：http://gw.api.tbsandbox.com/router/rest
正式环境地址：http://gw.api.taobao.com/router/rest
TOP会给每个应用分配app_key和app_secret，相当于该应用的用户名和密码。API调用传入的参数分为系统参数（每个API都需要，且格式相同）和API专有参数（随API不同而不同）两类。系统参数中，app_key由系统分配所得，session通过下列方法获得，而sign是根据签名规则生成，其实就是通过一个hash函数完成了加密和校验的双重功能。这和Facebook的那一套东西很像。
参考：TOP API系统级参数定义 How Facebook Authenticates Your Application
Demo
TOP开放的是基于REST的API，和编程语言无关的。下面用Java语言为例，写个hello world。
不用TOP Java SDK的demo：http://open.taobao.com/demo/javaDemo.zip 
用TOP SDK的demo: http://wiki.open.taobao.com/index.php/FAQ 
注意：SDK给的其实Java源文件，需要copy到源文件的目录下，进行编译。
]]></description>
			<content:encoded><![CDATA[<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">概述</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-SIZE: 12pt; mso-fareast-language: ZH-CN"> </span></span></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="font-family: Calibri;">Taobao Open Platform(<a href="http://open.taobao.com/">TOP</a>)</span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">，淘宝开放平台，是淘宝将一些（不是全部）数据（店铺，商品等）通过编程接口开放给开发者。说简单点是这样，一般我们大家都是在网页里面点点点，来装修店铺，买卖东西的，是人肉通过鼠标和键盘完成的。TOP API，可以帮助大家用程序来完成同样的事情。</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">目标</span></span></strong><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">该文主要回答一下几个问题：</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.25in; mso-list: l0 level1 lfo1"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-family: Calibri; font-size: small;">1)</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">淘宝为什么开放平台？对于开发者意味着什么？</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.25in; mso-list: l0 level1 lfo1"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-family: Calibri; font-size: small;">2)</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">开放了些什么东东？</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.25in; mso-list: l0 level1 lfo1"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-family: Calibri; font-size: small;">3)</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">如何写一个简单的基于开放平台应用？</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">淘宝开放的缘由</span></span></strong><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">Taobao</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">经过几年的发展，已经成为国内</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">X2C</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">的头块品牌。它发起并完善了广大的网商，用户，以及与之相关的支付，物流，信用等系统。现在基本无人不淘宝。我的一位同事，所有的东西基本上都在</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">taobao</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">上买，还有一位朋友一大爱好就是周末在</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">taobao</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">上买东西。</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">但淘宝已经差不多到了不得不开放的地步。在内部，大的卖家渴望走出去，店主渴望以某种方式在</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">300w</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">个网店中脱颖而出，各种购买方式层出不穷，团购、限时拍卖等；在外部，社区、</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">sns</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">、购物搜索已经开始直接或间接涉足</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">X2C</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">市场。面对这么多元化的需求，淘宝自己去满足，肯定会力不从心；视而不见，那会引起积怨，累计到一定程度，必然有后来者取而代之。那怎么办？简单。既然这个钱，我不想赚，那就帮别人去赚，但你们得围绕着我来玩。开放应运而生。如果要看</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">fancy</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">版本的同样解释，请看博文：</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><a href="http://blog.open.taobao.com/archives/13"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="color: #0000ff; font-size: small;">小前端、大后台</span></span></a><span style="font-size: small;"><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;"> </span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">路鹏（淘宝副总裁）</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">业务方向</span></span></strong><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">现在淘宝主推三大业务方向：独立网店、社区电子商务化、第三方开发的工具海。</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.25in; mso-list: l1 level1 lfo2"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-size: small;">·</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="font-size: small;">淘宝不讳言独立网店，真是很令人佩服。独立网店的样品工程就是</span></span><a href="http://www.uniqlo.cn/"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="color: #0000ff; font-size: small;">优衣库</span></span></a><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">，基本思路就是网站的域名和</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">UI</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">是独立网店的，其他的东西都是淘宝的，比如用户、支付、商品信息等。</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">ShopEx</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">在这方面是淘宝的合作伙伴。</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.25in; mso-list: l1 level1 lfo2"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-size: small;">·</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">社区电子商务化。简单来说，就是在</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">bbs</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">（如天涯）和</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">sns</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">（如人人网）中通过</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">TOP API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">展示淘宝上商品，一但成交，大家分钱。</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.25in; mso-list: l1 level1 lfo2"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-size: small;">·</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="font-size: small;">工具海。做垂直行业的商家管理工具，卖给</span></span><a href="http://forum.taobao.com/forum-313/show_thread----18218795-0-.htm"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="font-size: small;">旺铺</span></span></a><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">卖家。</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="font-size: small;">当然还有其他。参考：</span></span><a href="http://wiki.open.taobao.com/index.php/%E4%B8%9A%E5%8A%A1%E6%96%B9%E5%90%91"><span style="font-size: small;"><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">TOP</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">业务方向</span></span></a></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">盈利模式</span></span></strong><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">光炒概念，没有盈利模式的事情，我一向是只看不碰。那大多只是烧钱者的游戏，一般人玩儿不起。淘宝开放还是有比较清楚的变现模式的（包括但不限于）：</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.5in; mso-list: l2 level1 lfo3"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-size: small;">·</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">淘宝客佣金。淘宝客是按成交计费的，</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">CPA</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">模式。而且</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">中允许用户加入一些自定义数据，用于确定购买行为过程中的贡献方，使得分享利润成为可能。以前写过篇文章，就提到</span></span><a href="http://www.balionweb.com/an-ad-system-to-pay-content-generators.html"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="color: #0000ff; font-size: small;">分享利润的一个应用</span></span></a><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">。</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.5in; mso-list: l2 level1 lfo3"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-size: small;">·</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">插件分成。插件分为店铺管理插件和淘江湖</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">SNS</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">平台插件。前者是方便管理店铺用的，后者偏重娱乐性，概念类似</span></span><a href="http://www.balionweb.com/open-source-my-facebook-app.html"><span style="color: #0000ff;"><span style="font-size: small;"><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">Facebook</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">的应用</span></span></span></a><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">。</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.5in; mso-list: l2 level1 lfo3"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-size: small;">·</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">软件销售。</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">C/S</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">模式，或者</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">ShopEx</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">独立网店大多属于这种模式。</span></span></p>
<p class="NormalParagraph" style="TEXT-INDENT: -0.25in; MARGIN: 6pt 0in 6pt 0.5in; mso-list: l2 level1 lfo3"><span style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: ZH-CN"><span style="mso-list: Ignore"><span style="font-size: small;">·</span><span style="FONT: 7pt 'Times New Roman'"> </span></span></span><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">传统广告。比如你调用淘宝</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">生成网页，加</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">Google AdSense</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">进入，也是可以的。</span></span></p>
<p class="NormalParagraph" style="TEXT-ALIGN: left; MARGIN: 6pt 0in" align="left"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="font-size: small;">参考：</span></span><a href="http://wiki.open.taobao.com/index.php/%E7%9B%88%E5%88%A9%E6%A8%A1%E5%BC%8F"><span style="font-size: small;"><span style="color: #0000ff;"><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">TOP</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">盈利模式</span></span></span></a></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-SIZE: 12pt; mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span></span></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN"><span style="font-size: small;">参考：</span></span><a href="http://wiki.open.taobao.com/index.php/API%E6%96%87%E6%A1%A3"><span style="font-size: small;"><span style="color: #0000ff;"><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">TOP API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">文档</span></span></span></a></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">API/角色</span></span></strong><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">六个基本角色，权限<strong style="mso-bidi-font-weight: normal">从低到高</strong>依次为：公开查询应用、买家应用、卖家应用、商家应用、高级应用、专业应</span><span style="FONT-FAMILY: 'SimSun','serif'; mso-bidi-font-family: SimSun; mso-fareast-font-family: SimSun; mso-fareast-language: ZH-CN" lang="ZH-CN">用。较高角色的权限<strong style="mso-bidi-font-weight: normal">包含</strong>较低角色的权限。</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 'SimSun','serif'; mso-bidi-font-family: SimSun; mso-fareast-font-family: SimSun; mso-fareast-language: ZH-CN" lang="ZH-CN">还有三个独立角色，</span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">社区应用、媒体应用、淘宝客应</span><span style="FONT-FAMILY: 'SimSun','serif'; mso-bidi-font-family: SimSun; mso-fareast-font-family: SimSun; mso-fareast-language: ZH-CN" lang="ZH-CN">用。相互独立，与六个基本角色不存在依赖关系。</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">API/分类</span></span></strong><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 'SimSun','serif'; mso-bidi-font-family: SimSun; mso-fareast-font-family: SimSun; mso-fareast-language: ZH-CN">API<span lang="ZH-CN">操作的对象，有如下</span>11<span lang="ZH-CN">种：用户，产品，类目，商品，交易，评价，物流，店铺，淘宝客，淘江湖</span>(v=2.0)<span lang="ZH-CN">，图片空间。</span></span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 'SimSun','serif'; mso-bidi-font-family: SimSun; mso-fareast-language: ZH-CN">API</span><span style="FONT-FAMILY: 宋体; mso-bidi-font-family: SimSun; mso-fareast-font-family: 宋体; mso-hansi-font-family: SimSun; mso-ascii-font-family: SimSun; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">基本的命名规则是</span><span style="FONT-FAMILY: 'SimSun','serif'; mso-bidi-font-family: SimSun; mso-fareast-language: ZH-CN">&lt;namespace&gt;.&lt;object&gt;.&lt;action&gt;</span><span style="FONT-FAMILY: 宋体; mso-bidi-font-family: SimSun; mso-fareast-font-family: 宋体; mso-hansi-font-family: SimSun; mso-ascii-font-family: SimSun; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">，如</span><span style="FONT-FAMILY: 'SimSun','serif'; mso-bidi-font-family: SimSun; mso-fareast-language: ZH-CN">taobao.item.get</span><span style="FONT-FAMILY: 宋体; mso-bidi-font-family: SimSun; mso-fareast-font-family: 宋体; mso-hansi-font-family: SimSun; mso-ascii-font-family: SimSun; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">用于获取单个商品的详细信息。</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">API/如何进行</span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-SIZE: 12pt; mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">调用</span></span></strong><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">基于</span><span style="mso-fareast-language: ZH-CN"><a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"><span style="font-family: Calibri; color: #0000ff;">REST</span></a></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">协议的</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">。调用接口地址是：</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">测试环境地址：</span><span style="mso-fareast-language: ZH-CN"><a href="http://gw.api.tbsandbox.com/router/rest"><span style="font-family: Calibri; color: #0000ff;">http://gw.api.tbsandbox.com/router/rest</span></a></span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">正式环境地址：</span><span style="mso-fareast-language: ZH-CN"><a href="http://gw.api.taobao.com/router/rest"><span style="font-family: Calibri; color: #0000ff;">http://gw.api.taobao.com/router/rest</span></a></span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">TOP</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">会给每个应用分配</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">app_key</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">和</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">app_secret</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">，相当于该应用的用户名和密码。</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">调用传入的参数分为系统参数（每个</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">都需要，且格式相同）和</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">专有参数（随</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">不同而不同）两类。系统参数中，</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">app_key</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">由系统分配所得，</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">session</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">通过</span><span style="mso-fareast-language: ZH-CN"><a href="http://wiki.open.taobao.com/index.php/%E5%A6%82%E4%BD%95%E5%8F%96%E5%BE%97session%EF%BC%9F"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast" lang="ZH-CN">下列方法</span></a></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">获得，而</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">sign</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">是根据</span><span style="mso-fareast-language: ZH-CN"><a href="http://wiki.open.taobao.com/index.php/%E7%AD%BE%E5%90%8D"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast" lang="ZH-CN"><span style="color: #0000ff;">签名规则</span></span></a></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">生成，其实就是通过一个</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">hash</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">函数完成了加密和校验的双重功能。这和</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">Facebook</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">的那一套东西很像。</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">参考：</span><span style="mso-fareast-language: ZH-CN"><a href="http://wiki.open.taobao.com/index.php/API%E7%B3%BB%E7%BB%9F%E7%BA%A7%E8%BE%93%E5%85%A5%E5%8F%82%E6%95%B0%E5%AE%9A%E4%B9%89"><span style="color: #0000ff;"><span style="font-family: Calibri;">TOP API</span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast" lang="ZH-CN">系统级参数定义</span></span></a><span style="font-family: Calibri;"> </span><a href="http://wiki.developers.facebook.com/index.php/How_Facebook_Authenticates_Your_Application"><span style="font-family: Calibri; color: #0000ff;">How Facebook Authenticates Your Application</span></a></span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><strong style="mso-bidi-font-weight: normal"><span style="text-decoration: underline;"><span style="FONT-SIZE: 12pt; mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">Demo</span></span></span></strong></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">TOP</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">开放的是基于</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">REST</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">的</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">API</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">，和编程语言无关的。下面用</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">Java</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">语言为例，写个</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">hello world</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">。</span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">不用</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">TOP Java SDK</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">的</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">demo</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">：</span><span style="mso-fareast-language: ZH-CN"><a href="http://open.taobao.com/demo/javaDemo.zip"><span style="font-family: Calibri;">http://open.taobao.com/demo/javaDemo.zip</span></a><span style="font-family: Calibri;"> </span></span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">用</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">TOP SDK</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">的</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">demo: </span><a href="http://wiki.open.taobao.com/index.php/FAQ"><span style="font-family: Calibri;">http://wiki.open.taobao.com/index.php/FAQ</span></a><span style="font-family: Calibri;"> </span></span></span></p>
<p class="NormalParagraph" style="MARGIN: 6pt 0in"><span style="font-size: small;"><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">注意：</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">SDK</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">给的其实</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">Java</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">源文件，需要</span><span style="mso-fareast-language: ZH-CN"><span style="font-family: Calibri;">copy</span></span><span style="FONT-FAMILY: 宋体; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-hansi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-fareast-theme-font: minor-fareast; mso-fareast-language: ZH-CN" lang="ZH-CN">到源文件的目录下，进行编译。</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/top-at-a-glance/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在线拍卖系统</title>
		<link>http://libaocun.com/online-auction-design</link>
		<comments>http://libaocun.com/online-auction-design#comments</comments>
		<pubDate>Wed, 30 Sep 2009 01:54:25 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[Chinese - 中文]]></category>
		<category><![CDATA[ACT]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[Online-Service]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=218</guid>
		<description><![CDATA[早上，习惯性地打开新浪，小心地在广告链接中穿行，点新闻看。一则关于淘宝一元秒杀的新闻，很有意思。故事大概是：9/25日晚8时，淘宝将价值数千元的商品，以一元标价在淘宝上拍卖，庆祝成立6周年。结果搞砸了。很多用户还未看到开始页面就结束了，还有人用作弊器同时拍到了多个商品。
此事从商务角度来说，淘宝是毫无疑问的赢家。此次拍卖的目的并非真的拍卖，而是赚人气，赚眼球。尚不清楚，淘宝是否真的故意造成争议话题，让大家去议论，正如电影拍摄中常常传出男女主角的桃色新闻一样。从技术角度来说，如果要较完善设计此系统的话，至少有几点值得商榷。
（1）Use server push instead of client pull. 有淘宝用户留言，
我从19:50开始，不断刷新页面，都是显示“即将开始”，再刷新，活动已经结束！MLGB…
在线拍卖讲究的就是时效性，大家都想以最低的价格得到某样商品，所以非常想知道最新的价格，这时候就疯狂刷页面，造成服务器压力很大。另外一种做法是Server Push, “你们都不要刷了，有消息会告诉你们的，回家等着吧。” 这种东东就叫做Server Push。也不是什么新的概念，用Java applet等插件N年前都能实现，但让每个人都装这么个插件显然代价太大。现在的SilverLight, Flex也能实现类似功能，但需要安装插件。Dojo的Comet很好地解决了这个问题。code在这里。不用装插件，可以穿越防火墙，而且scalability很好，也可以做cluster。淘宝的兄弟们真应该考虑一下这个东西。对Java天然支持。很可能将是Servlet 3.0的一部分，HTML5中也有类似的概念了。Server Push的应用范围主要在Server需要主动传递信息给client的情况，如在线拍卖，聊天，股票报价等。下面是一个介绍的slide，有兴趣的朋友，仔细看看。5分钟就可以用maven弄一个玩玩。
Time for Comet?
（2）用一点anti-spamming技术吧，在这里就是验证码(CAPTCHA)。只有人能拍，程序不能拍。
（3）防一下DoS攻击，把疯狂刷页面的同学的IP暂时放入黑名单，或者弹出一个验证码页面。
]]></description>
			<content:encoded><![CDATA[<p>早上，习惯性地打开新浪，小心地在广告链接中穿行，点新闻看。一则关于<a href="http://tech.sina.com.cn/i/2009-09-30/05283480615.shtml">淘宝一元秒杀</a>的新闻，很有意思。故事大概是：9/25日晚8时，淘宝将价值数千元的商品，以一元标价在淘宝上拍卖，庆祝成立6周年。结果搞砸了。很多用户还未看到开始页面就结束了，还有人用作弊器同时拍到了多个商品。</p>
<p>此事从商务角度来说，淘宝是毫无疑问的赢家。此次拍卖的目的并非真的拍卖，而是赚人气，赚眼球。尚不清楚，淘宝是否真的故意造成争议话题，让大家去议论，正如电影拍摄中常常传出男女主角的桃色新闻一样。从技术角度来说，如果要较完善设计此系统的话，至少有几点值得商榷。</p>
<p>（1）Use server push instead of client pull. 有淘宝用户留言，</p>
<blockquote><p>我从19:50开始，不断刷新页面，都是显示“即将开始”，再刷新，活动已经结束！MLGB…</p></blockquote>
<p>在线拍卖讲究的就是时效性，大家都想以最低的价格得到某样商品，所以非常想知道最新的价格，这时候就疯狂刷页面，造成服务器压力很大。另外一种做法是Server Push, <span style="color: #ff0000;"><strong>“你们都不要刷了，有消息会告诉你们的，回家等着吧。”</strong></span> 这种东东就叫做Server Push。也不是什么新的概念，用Java applet等插件N年前都能实现，但让每个人都装这么个插件显然代价太大。现在的SilverLight, Flex也能实现类似功能，但需要安装插件。<a href="http://cometdproject.dojotoolkit.org/">Dojo的Comet</a>很好地解决了这个问题。code在<a href="http://svn.cometd.com/trunk/">这里</a>。不用装插件，可以穿越防火墙，而且scalability很好，也可以做cluster。淘宝的兄弟们真应该考虑一下这个东西。对Java天然支持。很可能将是Servlet 3.0的一部分，HTML5中也有类似的概念了。Server Push的应用范围主要在Server需要主动传递信息给client的情况，如在线拍卖，聊天，股票报价等。下面是一个介绍的slide，有兴趣的朋友，仔细看看。5分钟就可以用maven弄一个玩玩。</p>
<div id="__ss_192886" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Time for Comet?" href="http://www.slideshare.net/simon/time-for-comet">Time for Comet?</a><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=time-for-comet-1196863649369632-2&amp;rel=0&amp;stripped_title=time-for-comet" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=time-for-comet-1196863649369632-2&amp;rel=0&amp;stripped_title=time-for-comet" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p>（2）用一点anti-spamming技术吧，在这里就是验证码(CAPTCHA)。只有人能拍，程序不能拍。</p>
<p>（3）防一下DoS攻击，把疯狂刷页面的同学的IP暂时放入黑名单，或者弹出一个验证码页面。</p>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/online-auction-design/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>#3, Hulu, Why?</title>
		<link>http://libaocun.com/3-hulu-why</link>
		<comments>http://libaocun.com/3-hulu-why#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:00:54 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[English - 英文]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Advertizing]]></category>
		<category><![CDATA[Online-Service]]></category>
		<category><![CDATA[Product/Feature-Design]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[THINK]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=72</guid>
		<description><![CDATA[Fast Company recently published its version of the world’s top 50 most innovative companies. Although I would question why Intel is among top10, what surprised me most is the fact that Hulu is listed #3. I know there might be political things about the particular order, as it goes with most ranking, but it would [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><a href="http://www.fastcompany.com/"><span style="font-family: Calibri;font-size: small">Fast Company</span></a><span style="font-family: Calibri;font-size: small"> recently published its version of the world’s </span><a href="http://www.fastcompany.com/fast50_09/list-all"><span style="font-family: Calibri;font-size: small">top 50</span></a><span style="font-family: Calibri;font-size: small"> most innovative companies. Although I would question why Intel is among top10, what surprised me most is the fact that </span><a href="http://www.hulu.com/"><span style="font-family: Calibri;font-size: small">Hulu</span></a><span style="font-family: Calibri;font-size: small"> is listed #3.<span> </span>I know there might be political things about the particular order, as it goes with most ranking, but it would be also interesting to find out “<strong>why Hulu, not others</strong>”.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><strong><span style="text-decoration: underline"><span lang="EN-US"><span style="font-family: Calibri">Origin</span></span></span></strong></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Hulu, an online video streaming company, managed to do something which YouTube failed to do. Copyright is one of YouTube’s headaches, but it is incredible positive thing for Hulu, because it is built intentionally aimed to server property content by two major stream media dogs, NBC Universal and Fox. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">{YouTube, watch someone’s DIY video} VS { Hulu, watch TV &amp; Movies online legally} -&gt; Similar but different market niche.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">People might be asking, why NBC and Fox executives don’t rely on YouTube to serve their plays? You can imagine following conversation which probably happened behind the scene:</span></span></p>
<table class="MsoTableGrid" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">NBC/Fox:</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">Hey, YouTube, are you interested in serving my video to the world?</span></p>
</td>
</tr>
<tr>
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">YouTube:</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">Why not.<span> </span>Let’s sit down and take a look at this. Now we are owned by Google, and we are overwhelming dominator in online video market. We have great brand. We have great infrastructure. We have most talented engineers. Blabla… (down to the point) so you have to pay x dollar for every minute show. </span></p>
</td>
</tr>
<tr>
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">NBC/Fox(think):</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">uh-um… let me do some math here. Plan A is to work with YouTube, plan B is to build up something myself. In next 3-5 years, if everything goes as predicted, plan B will bring much more money to our shareholders than plan A, and less risky.</span></p>
</td>
</tr>
<tr style="height: 16.15pt">
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">YouTube(ping NBC/Fox):</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">What do you think of the plan?</span></p>
</td>
</tr>
<tr>
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">NBC/Fox:</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">Nice plan, but no, thanks. </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">This is the first site who delivers property video to your computer for free.<span> </span>Traditional Media Company gradually realized that they have to embrace the changes if they are not able to prevent them. It is online streaming, in this case. Hulu has more than 120 sources now.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Key is property content sources are nonrenewable rare resources.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><strong><span style="text-decoration: underline"><span lang="EN-US"><span style="font-family: Calibri">Independence</span></span></span></strong></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Hulu’s CEO said to capital angels, <em>“I don&#8217;t think you&#8217;ll be seeing the name Fox or NBC on the site hardly at all, Hulu is about the shows, not the networks. The shows are the brands that users care about.&#8221;</em> Another quote, <em>“the key to Hulu&#8217;s success is its freedom to operate essentially as a stand-alone company…”</em></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">From startup’s perspective, captical can be good thing, or bad thing. It can help you grow much faster, but it can also easily enable you miss your initial goals. Capital often appoints some seemingly smart guy, who is with XYZ MBA degree or n years of experience in ABC company, to take over the company as one of its investment agreements. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">That is indeed one of the worst investment risk controls, although it happens again and again. Give money to most passionate guys, and letting them be passionate always is the only way to maximize the probability of getting most out of your investment. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Calibri"><strong><span style="text-decoration: underline"><span lang="EN-US">Feature?Solution?</span></span></strong><strong><span style="text-decoration: underline"><span lang="EN-US"> Experience</span></span></strong><strong><span style="text-decoration: underline"><span style="font-size: 14pt" lang="EN-US">!</span></span></strong></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Question: If you are given a task to build a video streaming site within less than 3 months, what would you do?</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">We were taught this way: </span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">1)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Identify who will be using your site</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">2)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Draw use case diagram</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">3)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">List scenarios for each user role</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">4)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">To support each scenarios, figure out needed features</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">5)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Design/Code/test your features </span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">6)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Go live</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">7)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Yeah! Party! :- )</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">If you follow this in your next interview, I can almost guarantee a pass. Do we miss anything? Actually we missed most critical one – Experience! Experience is a combination of brand/feeling/easy-to-use/enjoyable process. For example, given below requirement:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small"><em>&#8220;Design something which is used to sit on, commonly for use by one person. It often has the seat raised above floor level, supported by legs.&#8221;</em></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">People will respond immediately, &#8220;<a href="http://en.wikipedia.org/wiki/Chair">Chair</a>!&#8221;. You may notice that there are at least hundreds of types of chairs in the world, if not thousands of, if not millions of. </span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Only most imaginative ones who deeply understand that particular set of users’ needs, care about their feelings and eventually apply those into product designs can do the best work. Let us take a look at &#8220;art of chair&#8221;.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><img style="width: 739px;height: 139px" src="http://lh4.ggpht.com/_A9xfBBUVmv4/SaYx25NiOaI/AAAAAAAABgU/1lHwZ_UxOqs/s800/Chair.png" alt="Art of Chairs" width="739" height="139" /></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Be COOL, in show time, although you might have the similar hard time figuring out what some of them really are. <img src='http://libaocun.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Just like someone said about iTune – <em>“iTune is not selling features. iTune is selling experience.”</em></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><a href="http://www.fastcompany.com/fast50_09/profile/list/hulu"><span style="font-family: Calibri;font-size: small">Hulu’s key experiences</span></a><span style="font-family: Calibri;font-size: small">:</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">1)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Simple</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">2)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Larger screen</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">3)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">High-resolution video</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">4)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Clutter-free</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">5)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Quality control</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">6)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Free to users</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">7)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">No download</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small"> <img src='http://libaocun.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Obsessed with users</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/3-hulu-why/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memory Leaks Demo &amp; Detection in .NET Application</title>
		<link>http://libaocun.com/memory-leaks-demo-detection-in-net-application</link>
		<comments>http://libaocun.com/memory-leaks-demo-detection-in-net-application#comments</comments>
		<pubDate>Wed, 29 Jul 2009 03:58:17 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[English - 英文]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ACT]]></category>
		<category><![CDATA[Online-Service]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=62</guid>
		<description><![CDATA[Memory leaks are always headache of developers. Do .NET developers no longer bother to worry about memory leaks because of garbage collection? Yes and NO. GC periodically find objects that cannot be accessed in the future and then reclaim the resources used by the objects. GC achieves this by maintaining a list of references to [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Memory leaks are always headache of developers. Do .NET developers no longer bother to worry about memory leaks because of garbage collection? Yes and NO. GC periodically find objects that cannot be accessed in the future and then reclaim the resources used by the objects. GC achieves this by maintaining a list of </span><a href="http://msdn.microsoft.com/en-us/library/0f66670z%28VS.71%29.aspx"><span style="font-family: Calibri;font-size: small">references</span></a><span style="font-family: Calibri;font-size: small"> to live objects. When this mechanism is broken, memory leak happens. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">There are many reasons to leak memory. In addition to calling unmanaged code from managed code, another one of general cases is about event handler. If you do this:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span style="font-size: small"><span lang="EN-US"><span><span style="font-family: Calibri"> </span></span></span><span style="background: silver none repeat scroll 0% 0%;font-family: 'Arial','sans-serif'" lang="EN-US">Foo.FooEvent += <span style="color: #0066ff">new</span> EventHandler(MemoryLeaksHere.Method);</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">When you complete using <em>MemoryLeaksHere</em>, but you are still using <em>Foo</em>, then <em>MemoryLeaksHere</em> will still remain alive as well. <em>MemoryLeaksHere</em> object will leak memory as a result of failing to GC. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Let us take a look at one simple example first.</span></span></p>
<table class="MsoTableGrid" style="border: medium none;background: #eeece1 none repeat scroll 0% 0%;border-collapse: collapse" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border: medium none black;padding: 0cm 5.4pt;background-color: transparent;width: 594.95pt" width="793" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';color: blue;font-size: 10pt" lang="EN-US">using</span><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"> System;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';color: blue;font-size: 10pt" lang="EN-US">namespace</span><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"> MemoryLeakSample</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US">{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">class</span> <span style="color: #2b91af">Foo</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: #2b91af">Foo</span> myFoo;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">public</span> <span style="color: blue">event</span> <span style="color: #2b91af">EventHandler</span> FooEvent;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">public</span> Foo()</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>myFoo = <span style="color: blue">this</span>;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">public</span> <span style="color: blue">void</span> FooMethod()</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">MemoryLeaksHere</span> memLeak = <span style="color: blue">new</span> <span style="color: #2b91af">MemoryLeaksHere</span>();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>memLeak.TryQuit();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">public</span> <span style="color: blue">void</span> FireEvent()</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>FooEvent(<span style="color: blue">null</span>, <span style="color: blue">null</span>);</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">static</span> <span style="color: blue">void</span> Main(<span style="color: blue">string</span>[] args)</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Foo</span> foo = <span style="color: blue">new</span> <span style="color: #2b91af">Foo</span>();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">for</span> (<span style="color: blue">int</span> i = 0; i &lt; 5; ++i)</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>foo.FooMethod();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">GC</span>.Collect();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">GC</span>.WaitForPendingFinalizers();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">GC</span>.Collect();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&#8220;Check memory leak here.&#8221;</span>);</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: gray">///</span><span style="color: green"> </span><span style="color: gray">&lt;summary&gt;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: gray">///</span><span style="color: green"> This object will cause memory leak</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: gray">///</span><span style="color: green"> </span><span style="color: gray">&lt;/summary&gt;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">public</span> <span style="color: blue">class</span> <span style="color: #2b91af">MemoryLeaksHere</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">public</span> MemoryLeaksHere()</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Foo</span>.myFoo.FooEvent += <span style="color: blue">new</span> <span style="color: #2b91af">EventHandler</span>(OnMyFooEventFired);</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&#8220;\nObject-{0}: Construct. Subscribe.&#8221;</span>, <span style="color: blue">this</span>.GetHashCode());</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>~MemoryLeaksHere()</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&#8220;Object-{0}: Deconstruct.&#8221;</span>, <span style="color: blue">this</span>.GetHashCode());</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">public</span> <span style="color: blue">void</span> TryQuit()</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Console</span>.Write(<span style="color: #a31515">&#8220;Object-{0}: leak me?&#8221;</span>, <span style="color: blue">this</span>.GetHashCode());</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">string</span> input = <span style="color: #2b91af">Console</span>.ReadLine();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">if</span> (<span style="color: blue">string</span>.Equals(input, <span style="color: #a31515">&#8220;no&#8221;</span>))</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Foo</span>.myFoo.FooEvent -= <span style="color: blue">new</span> <span style="color: #2b91af">EventHandler</span>(OnMyFooEventFired);</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&#8220;Object-{0}: Unsubscribe.&#8221;</span>, <span style="color: blue">this</span>.GetHashCode());</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">else</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&#8220;Object-{0}: Not Unsubscribe&#8221;</span>, <span style="color: blue">this</span>.GetHashCode());</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: blue">private</span> <span style="color: blue">void</span> OnMyFooEventFired(<span style="color: blue">object</span> sender, <span style="color: #2b91af">EventArgs</span> e)</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span><span style="color: green">// Do something</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US">}</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">In </span></span><span style="font-family: 'Courier New';color: #2b91af;font-size: 10pt" lang="EN-US">MemoryLeaksHere</span><span lang="EN-US"><span style="font-family: Calibri;font-size: small"> object’s constructor, </span></span><span style="font-family: 'Courier New';color: #2b91af;font-size: 10pt" lang="EN-US">Foo</span><span lang="EN-US"><span style="font-family: Calibri;font-size: small"> starts to hold a reference to </span></span><span style="font-family: 'Courier New';color: #2b91af;font-size: 10pt" lang="EN-US">MemoryLeaksHere</span><span lang="EN-US"><span style="font-family: Calibri;font-size: small"> by registering event handler. In </span></span><span style="font-family: 'Courier New';color: #2b91af;font-size: 10pt" lang="EN-US">MemoryLeaksHere</span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">.</span></span><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US">TryQuit()<span lang="EN-US"><span style="font-family: Calibri;font-size: small">, if we don&#8217;t unregister, memory leak will happen.</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">To be more intuitive, you can copy/paste sample code to VS2008, and then enable unmanged code debugging by following:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Project-&gt;Properties-&gt;Debug-&gt;Enable Unmanaged Code debugging</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Now set a breakpoint at </span></span><span style="font-family: 'Courier New';font-size: 10pt" lang="EN-US">“<span style="color: #a31515">Check memory leak here”</span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">, and start build/debug. When being asked leak me or not, you can choose either <em>yes</em> or <em>no</em>. For example:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small"><img style="width: 668px;height: 431px" src="http://lh5.ggpht.com/_A9xfBBUVmv4/SZJRYmPI-KI/AAAAAAAABeM/3kApbMNs_dA/s800/LeakMe.PNG" alt="" width="668" height="431" /> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Here, looks like we leak two of them. Finally app will hit the breakpoint and stop. At this point, we can go to VS immedate window to load sos.dll, and then check how many objects in the heap:</span></span></p>
<table class="MsoTableGrid" style="border: medium none;background: #eeece1 none repeat scroll 0% 0%;border-collapse: collapse" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border: medium none black;padding: 0cm 5.4pt;background-color: transparent;width: 602.05pt" width="803" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;color: red;font-size: 9pt" lang="EN-US">!load sos.dll</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">extension C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos.dll loaded</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;color: red;font-size: 9pt" lang="EN-US">!dumpheap -type MemoryLeaksHere</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">PDB symbol for mscorwks.dll not loaded</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US"><span> </span>Address<span> </span>MT<span> </span>Size</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">0132e7d0 00983104<span> </span>12<span> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">0132eba0 00983104<span> </span>12<span> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">total 2 objects</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">Statistics:</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US"><span> </span>MT<span> </span>Count<span> </span>TotalSize Class Name</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">00983104<span> </span>2<span> </span>24 MemoryLeakSample.MemoryLeaksHere</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">Total 2 objects</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">So now we know there are two object instances are not recycled. Why are they not GC-ed? Because someone has a reference to them. Choose one of them, and use <em>gcroot</em> command.</span></span></p>
<table class="MsoTableGrid" style="border: medium none;background: #eeece1 none repeat scroll 0% 0%;border-collapse: collapse" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border: medium none black;padding: 0cm 5.4pt;background-color: transparent;width: 602.05pt" width="803" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;color: red;font-size: 9pt" lang="EN-US">!gcroot 0132e7d0</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">Note: Roots found on stacks may be false positives. Run &#8220;!help gcroot&#8221; for</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">more info.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">Error during command: Warning. Extension is using a callback which Visual Studio does not implement.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">Scan Thread 7592 OSTHread 1da8</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">ESP:12f434:Root:01312d48(MemoryLeakSample.Foo)-&gt;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">0132f704(System.EventHandler)-&gt;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">0132f6ec(System.Object[])-&gt;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">0132e7dc(System.EventHandler)-&gt;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">0132e7d0(MemoryLeakSample.MemoryLeaksHere)</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">Scan Thread 4704 OSTHread 1260</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Now we can see that </span></span><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">MemoryLeakSample.Foo</span><span lang="EN-US"><span style="font-family: Calibri;font-size: small"> is still referencing </span></span><span style="font-family: 新宋体;font-size: 9pt" lang="EN-US">MemoryLeakSample.MemoryLeaksHere</span><span lang="EN-US"><span style="font-family: Calibri;font-size: small"> via event handler. If it is not 5 iterations, image what would happen if every incoming request results in a slice of memory leak&#8230; Soon or later, you online service will be down.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">See also:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><a href="http://www.codeproject.com/KB/dotnet/Memory_Leak_Detection.aspx"><span style="font-family: Calibri;font-size: small">http://www.codeproject.com/KB/dotnet/Memory_Leak_Detection.aspx</span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><a href="http://blogs.msdn.com/jgoldb/archive/2008/02/04/finding-memory-leaks-in-wpf-based-applications.aspx"><span style="font-family: Calibri;font-size: small">http://blogs.msdn.com/jgoldb/archive/2008/02/04/finding-memory-leaks-in-wpf-based-applications.aspx</span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><a href="http://blogs.msdn.com/calvin_hsia/archive/2008/04/11/8381838.aspx"><span style="font-family: Calibri;font-size: small">http://blogs.msdn.com/calvin_hsia/archive/2008/04/11/8381838.aspx</span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><a href="http://www.automatedqa.com/techpapers/net_allocation_profiler.asp"><span style="font-family: Calibri;font-size: small">http://www.automatedqa.com/techpapers/net_allocation_profiler.asp</span></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><a href="http://blogs.msdn.com/greg_schechter/archive/2004/05/27/143605.aspx"><span style="font-family: Calibri;font-size: small">http://blogs.msdn.com/greg_schechter/archive/2004/05/27/143605.aspx</span></a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/memory-leaks-demo-detection-in-net-application/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To Next Cuil</title>
		<link>http://libaocun.com/to-next-cuil</link>
		<comments>http://libaocun.com/to-next-cuil#comments</comments>
		<pubDate>Wed, 29 Jul 2009 03:56:00 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[English - 英文]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Online-Service]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[THINK]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=56</guid>
		<description><![CDATA[Cuil, another so-called Google killer, is at its last gasp. I just knew it. I am not predicting present. Cuil is not the first one, and apparently not the last. For upcoming cuils, here are my words.
Brand. Brand. Brand. 
For many people, word of Google has close sentimental connection with bunch of splendid words such [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 10pt"><a href="http://www.cuil.com/"><span style="font-family: Calibri;font-size: small">Cuil</span></a><span style="font-family: Calibri;font-size: small">, another so-called Google killer, is </span><a href="http://www.techcrunch.com/2008/12/27/cuil-fail-traffic-nearly-hits-rock-bottom/"><span style="font-family: Calibri;font-size: small">at its last gasp</span></a><span style="font-family: Calibri;font-size: small">. I just knew it. I am not predicting present. Cuil is not the first one, and apparently not the last. For upcoming cuils, here are my words.</span></p>
<h2 style="margin: 10pt 0in 0pt"><span style="font-family: Calibri;color: #17365d;font-size: medium"><span style="text-decoration: underline">Brand. Brand. Brand.</span> </span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">For many people, word of Google has close sentimental connection with bunch of splendid words such as cool, innovation, unselfish, impartial, revolution, and powerful, etc… With brand, Google claims that “People don’t work at Google for the money. </span><a href="http://www.techcrunch.com/2009/01/18/why-google-employees-quit/"><span style="font-family: Calibri;font-size: small">They work at Google because they want to change the world!</span></a><span style="font-family: Calibri;font-size: small">”. With brand, debut of Google’s every new service always arouses buzzes, but seldom notices that Live also has compelling equivalence. With brand, people think only Google can provide best results, but often they can’t tell who is search provider when presented anonymous results set. It is very interesting to take a look at curve of Cuil’s daily unique visitors:</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small"><img style="width: 596px;height: 229px" src="http://www.techcrunch.com/wp-content/uploads/2008/12/cuil-traffic_edited-1.png" alt="Curl's Daily Unique Visitors" width="596" height="229" /></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">At launch momentum, people rushed to see what this Google killer looks like because of Google’s brand. Ridiculous? Not actually. It is everyone’s inherent attributes as people love to check out events of small probability such as </span><span style="font-family: Calibri;font-size: small"><a href="http://news.bbc.co.uk/2/hi/middle_east/7782422.stm">Shoes thrown at Bush</a></span><span style="font-family: Calibri;font-size: small">, </span><a href="http://www.milliondollarhomepage.com/index-orig.php"><span style="font-family: Calibri;font-size: small">one crazy million-dollar idea</span></a><span style="font-size: small"><span style="font-family: Calibri">. As part of branding strategy, naming is essential. Cuil might not a good name actually. Let me share a story of mine. Back to several years ago, a group of my friends decided to build a website aimed to provide 3<sup>rd</sup> service for franchising, called JiaMeng</span><span style="font-family: SimSun" lang="ZH-CN"> <span style="font-family: Calibri">in Chinese</span></span><span style="font-family: Calibri">. The guys with solid academic management background came with the domain name of <em>51franchise.com</em>. It turned out a real trouble – hard to explain to customers, not localized. Even ordinary college students don’t know the word <em>franchise</em>, not to mention clients with much less schooling. So, ditu.live.com for Chinese is much better than chinamap.live.com if you take a look at average education level of internet users. All in all, BRAND works like religion, and it takes lifetime to build. </span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt"><img style="width: 400px;height: 149px" src="http://lh6.ggpht.com/_A9xfBBUVmv4/SaoUf6_cqWI/AAAAAAAABg4/mtfAty4KaQk/s400/GmailBrand.JPG" border="1" alt="Brand -&gt; prouducts" width="400" height="149" /></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 10pt">&#8220;A Google approach to email&#8221; &#8211; see how brand helps product marketing.</p>
<h2 style="margin: 10pt 0in 0pt"><span style="font-family: Calibri;color: #17365d;font-size: medium"><span style="text-decoration: underline">Infrastructure</span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span><span style="font-family: Calibri;font-size: small"> </span></span><a href="http://labs.google.com/papers/gfs.html"><span style="font-family: Calibri;font-size: small">GFS</span></a><span style="font-family: Calibri;font-size: small">. </span><a href="http://en.wikipedia.org/wiki/BigTable"><span style="font-family: Calibri;font-size: small">BigTable</span></a><span style="font-family: Calibri;font-size: small">. </span><a href="http://labs.google.com/papers/mapreduce.html"><span style="font-family: Calibri;font-size: small">MapReduce</span></a><span style="font-family: Calibri;font-size: small">. They can be competitive advantages. With these put in place, Google can roll out new internet services faster, cheaper, and at scale at few others can compete with. They are designed solely for Internet services. Users quit quickly after dissatisfied performance experience in Cuil. Microsoft software is mainly for an enterprise, supporting 100K concurrent users is “good enough”, but it is far more perfect in internet scenario. </span></p>
<p><span style="font-family: Calibri;font-size: small"><br />
</span></p>
<h2 style="margin: 10pt 0in 0pt"><span style="font-family: Calibri;font-size: small"><span style="font-family: Calibri;color: #17365d;font-size: medium"><span style="text-decoration: underline">Understand/Repsect Customers</span></span></span></h2>
<p><span style="font-family: Calibri;font-size: small"><span style="font-family: Calibri"><br />
</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small"><span style="font-family: Calibri">There is no one-size-fits-all solution given the growingly diversified market. Of course you can educate customers, but never expect to change their inherent attributes coming from culture/history/economic development level. If you doubt this claim, check out this article: <a href="http://articles.latimes.com/2007/dec/10/business/fi-baidu10"><span style="color: #800080">Search site moves at the speed of China</span></a>, which reports, “<em>But appreciating such cultural differences is what Baidu.com Inc.’s chief financial officer, Shawn Wang, says gives the Chinese search giant unique insight into the country’s 1.3 billion people as it competes with American rivals such as Google Inc. and Yahoo Inc.</em>” As a result:</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small"><span style="font-family: Calibri"><img style="width: 510px;height: 387px" src="http://idc.iresearch.com.cn/english/pic/V200892310214.jpg" alt="Baidu beats Google in China market" width="510" height="387" /></span></span></p>
<h2 style="margin: 10pt 0in 0pt"><span style="font-family: Calibri;color: #17365d;font-size: medium"><span style="text-decoration: underline">Culture</span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">Per Wikipedia, </span><a href="http://en.wikipedia.org/wiki/Culture"><span style="font-family: Calibri;font-size: small">culture</span></a><span style="font-family: Calibri;font-size: small"> means <em>the set of shared attitudes, values, goals, and practices that characterizes an institution, organization or group</em>. Google’s business is built on top of internet, so its organization/knowledge base is built for the internet, just like Microsoft is built for software, mainly enterprise software. I met strong feature PM with deep knowledge needed for enterprise software, say reporting, admin UI, DB admin UI, and information work flow. They understand their customers so much after years of interactions with them. It takes time to accumulate. Top-down hierarchy, heavyweight development process, years of in-house development can hardly catch up with the pace of internet evolution. The same thing is applied to Google – I am equally not optimistic if Google step into enterprise software because of the same reason – culture, enterprise’s DNA.</span></p>
<h2 style="margin: 10pt 0in 0pt"><span style="font-family: Calibri;color: #17365d;font-size: medium"><span style="text-decoration: underline">Web Competition Strategy</span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">What is Cuil’s selling point? (1) Fancy UI. UI is critical for adoption and usage, but it hardly provides a moat. This is provided by two case studies of Apple computer of the nineties and the “X window” system on *nix OS. Both these systems with more attractive UI couldn’t beat windows OS with lower cost and rich applications available. (2) More relevant result. This is an ambiguous area which lacks of widely accepted measure criteria. (3) Cheaper solution. There is a question of sunk cost, of course you can claim you are 1/10 cheaper once reaching Google’s current scale. None of these is compelling from users’ point of view. Why do users bother to go to your site instead? One of the significant differences between web service (say, search) and traditional software business(say, DB) is purchasing decision making process. DB vendors can send to salesmen to target customers’ office and argue the deal. Only quite a few key persons have the final call. They are more analytical, love data. As comparison, everyone can be customers of search, we are more emotional. If I don’t miss anything, looks like the best strategy to monetize Cuil is to be acquired by Google. </span></p>
<h2 style="margin: 10pt 0in 0pt"><span style="font-family: Calibri;color: #17365d;font-size: medium"><span style="text-decoration: underline">No chance to win in search?</span></span></h2>
<p class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">Definitely No. But you are doomed to fail if following essential parts are missed:</span></p>
<ol>
<li>
<div class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">Remember brand. Remember “winners take all”.</span></div>
</li>
<li>
<div class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">Build your DNA towards internet. DNA = SUM(people, team arch, process, knowledge, …)</span></div>
</li>
<li>
<div class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">Put infrastructure in place. This is the way to help turn your idea into profitable traffic. Not scale-up, scale-out instead.</span></div>
</li>
<li>
<div class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">One thumb rule to compete with dominant market leader</span></div>
<ul>
<li>
<div class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">Avoid playing games whose rules are set by opponents. You can hardly win. In this case, better search engine defined by Google are faster, relevant results, simple UI, magic algorithm, PB of data, … <span style="color: red">Let us think of solving same problems with different approaches</span>. Why search? Help explore and share information. If someone tries to solve this problem by following Yahoo’s tail light to build yet another portal, he has little change to take off. Another example is download &#8211; P2P technology solved the download problem without adding more expensive servers/bandwidth.</span></div>
</li>
<li>
<div class="MsoNormal" style="margin: 0in 0in 10pt"><span style="font-family: Calibri;font-size: small">Attack opponents’ weak points. Google is designed to search everything, but it may not be good at all vertical industries, say shopping. Nibble at its market share if we can’t win in head-to-head way. </span></div>
</li>
</ul>
</li>
<li><span style="font-family: 'Calibri','sans-serif';font-size: 11pt">Before rolling up sleeves, why we have to win? Why not step away and go find next big thing? Let Google be Google.</span></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/to-next-cuil/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
