<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>出家如初，成佛有余</title>
	<link>http://www.yeeach.com</link>
	<description>专注电子商务领域，关注无线互联网，关注新媒体；Yeeach.com用于记录我技术生涯的点滴</description>
	<lastBuildDate>Sun, 14 Mar 2010 11:33:21 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Cognos 8.3用户权限控制入门</title>
		<description><![CDATA[&#160;&#160;&#160; 学习Cognos 8.3入门中，需要实现Cognos与现有业务系统集成，尤其是用户权限部分。官方文档及网上的教程对Cognos用户权限控制的实现机制都语焉不详，迫切需要一个快餐式的Step-By-Step的学习文档。整理一下学习的东西，希望对新手们有所帮助。
&#160;&#160;&#160; 目的：
&#160;&#160;&#160; 1. 采用OpenDS存储组织机构及用户信息，实现OpenDS与Cognos集成
&#160;&#160;&#160; 2. 使用Cognos Framework Manager来实现用户数据过滤控制，实现同一报表用户只能够看见自己的数据
&#160;&#160;&#160; 3. 二次开发实现cognos与业务系统的用户数据集成
&#160; 下载《Cognos 8.3用户权限控制入门》
&#160;
Technorati 标签: cognos,opends,OLAP,权限控制,ldap
	
	
	&#169; chuanliang for 出家如初，成佛有余, 2010. &#124;
	  Permalink &#124;
	  No comment
	Add to del.icio.us
	Search blogs linking this post with Technorati
	Want more on these topics ? Browse the archive of posts filed under 技术相关.]]></description>
		<link>http://www.yeeach.com/2010/03/14/cognos-8-3%e7%94%a8%e6%88%b7%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6%e5%85%a5%e9%97%a8/</link>
			</item>
	<item>
		<title>电子商务平台之&#8220;推荐作为服务&#8221;</title>
		<description><![CDATA[&#160;&#160;&#160; 在亚马逊这样的电子商务标杆企业的示范下，推荐系统对于电子商务网站的价值已被大家所认同，例如：增加网站的访问量，提升销售额；提高网站的交叉销售能力；增加顾客在网店上的停留时间，浏览更多的商品；将网站的浏览者转变为购买者等等。因此大家都希望能够拥有自己的推荐系统。 
&#160;&#160;&#160; 但相对于网站开发技术而言，推荐系统由于涉及数据仓库、数据挖掘、统计分析、人工智能等相关技术，因此技术门槛要高得多，对于研发能力相对较弱的中小型的企业而言，要自己研发推荐系统难度很大。于是乎诞生了一些以“推荐作为服务”（Recommendation as a Service）的公司。 
1、推荐服务的基本模式
&#160;&#160;&#160; 这些公司拥有推荐系统核心技术，通过SaaS模式对外提供推荐服务，一般的服务方式如下： 
&#160;&#160;&#160; 1）、以接口、批量上传等形式导入合作伙伴的产品目录
&#160;&#160;&#160; 2）、在合作伙伴网站页面嵌入用于跟踪用户行为的javascript脚本
&#160;&#160;&#160; 3）、通过对诸如商品信息、历史用户数据、用户行为（包括搜索、网站点击行为、购买历史、喜好、购物车、收藏历史）等行为数据的汇总分析，建立网站相应的推荐模型
&#160;&#160;&#160; 4）、用户登录网站时候，根据用户历史行为数据实时分析预测用户的喜好，产生个性化推荐。
&#160;&#160;&#160; 下图摘自Strands、Mybuys 公司的业务流程图，基本上概括了推荐服务的核心模型
 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Strands的模型
&#160;
 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Mybuys 的模型 
&#160;&#160;&#160; 尽管推荐服务核心算法的理论基础基本上类似，但不同行业推荐对象对应的模型不尽相同（例如电子商务、SNS社区、媒体站点），更为重要的是由于各公司商业模式的不同，不同的公司对于推荐服务有不同的要求，因此推荐服务提供商针对不同行业及不同公司所采用推荐算法及模型实现都会有所不同。&#160;&#160;&#160; 
2、推荐服务提供商
&#160;&#160; 2.1、国外的“推荐作为服务”提供商：
&#160;&#160;&#160; Strands、 Mybuys 、 Baynote、 Loomia 、 Aggregrate Knowledge 、RichRelevance、 OutBrain、 ATG、 Avail Intelligence、Certona、&#160;&#160;&#160; Choicestream、 Apture
&#160; 
&#160;

2.2、国内的“推荐作为服务”提供商：
&#160;&#160;&#160; 百分点、 麦路 
&#160;&#160;&#160; 麦路最初以“推荐作为服务”作为商业模式，目前重点已经转向运营购物返现联盟发现宝。 
&#160;&#160;&#160; 而百分点仍然专注在“推荐作为服务”上，相对于麦路更加专业，百分点推荐技术研究中心及电子期刊收集了一些有价值的资料。尽管作为纯技术驱动的公司在国内现实的商业环境下生存相对较难，但随着国内电子商务的繁荣及成熟，相信像百分点这样专业化的公司会有美好的前景。 
3、几点思考：
3.1、“推荐作为服务”的商业模式
&#160;&#160;&#160; 1）、独立的推荐服务提供商 
&#160;&#160;&#160; 2）、依托于某个电子商务开放平台（例如淘宝开放平台）、SNS开放平台提供推荐服务 
&#160;&#160;&#160; 3）、依托于广告联盟 
&#160;&#160;&#160; 4）、依托于网络营销、购物返现联盟 [...]]]></description>
		<link>http://www.yeeach.com/2010/03/07/%e7%94%b5%e5%ad%90%e5%95%86%e5%8a%a1%e5%b9%b3%e5%8f%b0%e4%b9%8b%e6%8e%a8%e8%8d%90%e4%bd%9c%e4%b8%ba%e6%9c%8d%e5%8a%a1/</link>
			</item>
	<item>
		<title>电子商务平台之平台服务杂思</title>
		<description><![CDATA[&#160;&#160;&#160; 在去哪儿上买3张成都到北京的机票，一张儿童票、2张成人票。比价后，选择了一家价格较为便宜的分销商下单，跳转到分销商的网站下单时候成人票860，儿童票720，加上保险、机场建设费等费用，总价2622元。做支付时候也没具体留意总的支付金额（呵呵，是够粗心的），完成支付后，等待交易成功的通知。过了2个小时还没有收到短信通知，于是打分销商的客服电话，打了10多次，一直是忙音，语音始终提示前面有2&#8211;8人等待。于是上分销商的网站看订单状态。由于不知道初始密码，通过重置密码方式，接近10多分钟都没收到重置短信。后来按照111111、2222222、333333顺序方式测密码，终于登陆进去了。发现订单发现每张成人票的支付金额为1080元，而且订单中出现了四张成人票记录。好在总价中只计算了两张票的价格。总价为3062元。
&#160;&#160;&#160; 再打电话投诉，仍然一直是忙音。打了2个多小时，打了30多个电话后，终于打通了。把情况一说，客服人员很流利地说明了原因：他们自己系统是有问题，与去哪儿合作的合作页不是实时刷新的，因此在下单时候成人票的价格在他们平台上是1080，而不是860元，要避免此种情况，最好在下单前在他们平台再查询一下实时价格。从客服的解释来看，以前应该也遇见很多这样的问题，很奇怪明知有问题，为何一直不修改，只好退票。退票时候，客服人员问银行账号，而且建议最好是工行的账号。很奇怪，问她：不是通过快钱支付的吗，你直接给我退回我的支付行就行了。客服说不行，如果不用工行而用其他银行账号，退款退回时间不确定。
&#160;&#160;&#160; 懒得再一家一家地比较，担心再出问题，于是直接在去哪儿上比较了一下进行直销的航空公司的价格，找了相对便宜的南方航空下了单。在这过程中，暴露了很多问题，包括：
&#160;&#160;&#160; 1、合作商户系统与平台对接时候信息同步、实时性问题
&#160;&#160;&#160; 2、合作商户系统本身存在很多问题
&#160;&#160;&#160; 3、合作商户本身服务的能力、服务规范性及服务质量
&#160;&#160;&#160; 4、平台服务体验的一致性问题
&#160;&#160;&#160; 5、平台对合作商户资质的选择
&#160;&#160;&#160; 这些问题归根结底可以概括为电子商务平台服务问题，以上问题能否有效解决影响着一个电子商务平台的成败，总结一下零碎思考的一些内容：
1、平台服务的边界
&#160;&#160; 对用户而言，在购买机票过程中涉及两个比较大的电子商务平台：去哪儿的机票比价平台、快钱的支付平台。在两个平台作为这些商户的平台服务提供商，理论上只需要能够为这些商户提供好所需要的各种服务就行，合作商户以上的各种问题让合作商户自己搞定就行，不能归结为平台的问题。
&#160;&#160; 但对于最终用户而言，在使用服务过程中出现的各种问题都是平台的问题，他并很不清楚这些系统的边界，他只关心能够通过平台低成本、便捷、安全享受各种服务。如果合作商户不能为客户提供优质的服务，那平台本身的价值也打了很大的折扣。平台要保证服务的一致性，要维护平台核心的价值，就应该树立平台的服务标准，用这些标准来要求商户并帮助合作商户从各个层面上进步。合作商户的高度决定了平台的高度。
&#160;&#160;&#160; 因此作为一个平台本身，在考虑平台建设时候，我们不应当只是盯住平台本身的边界，平台的边界的划分应该以用户视角来看，以保证用户以一致性的体验完成整个购物过程。这就要求平台的合作商户的选择、合作商户服务能力、合作商户系统等问题上必须以平台化的要求来执行，对达不到平台化要求的，或者帮助其进步、或者淘汰。&#160;&#160;&#160; 
2、平台服务的核心价值
&#160;&#160;&#160; 对于合作商户而言，如果平台只是单纯作为一个销售通路或营销通路，那平台给合作商户带来的价值并不是持久性的，可替代性很高。尤其航空公司们的直销业务在整个机票分销业务中比重愈来愈大的情况下，这些合作商户凭什么生存呢？
&#160;&#160;&#160; 这些平台服务提供商肯定不希望合作商户在航空公司们的电子商务直销浪潮下消亡掉，在平台上面只剩下几个有限的几个航空公司。平台合作商户的多样化、差异化才能够保证平台对于最终用户的吸引力，也才能够保证平台持久存在的价值。
&#160;&#160;&#160; 在面临日益剧烈的竞争下，平台服务对于合作商户的核心价值在于：通过平台来帮助其提高竞争力。这种竞争力包括服务能力、盈利能力、营销能力、服务的持久性等。
&#160;&#160; 
Technorati 标签: 电子商务,开放平台,客户服务,去哪儿
	
	
	&#169; chuanliang for 出家如初，成佛有余, 2010. &#124;
	  Permalink &#124;
	  No comment
	Add to del.icio.us
	Search blogs linking this post with Technorati
	Want more on these topics ? Browse the archive of posts filed under 产品管理,  电子商务.]]></description>
		<link>http://www.yeeach.com/2010/02/28/%e7%94%b5%e5%ad%90%e5%95%86%e5%8a%a1%e5%b9%b3%e5%8f%b0%e4%b9%8b%e5%b9%b3%e5%8f%b0%e6%9c%8d%e5%8a%a1%e6%9d%82%e6%80%9d/</link>
			</item>
	<item>
		<title>从Evernote看产品竞争策略</title>
		<description><![CDATA[&#160;&#160;&#160; Please, Evernote, wake up. I wanted you to win. 这篇文章不错，虽然只是谈论Evernote与Onenote的竞争策略，但对于产品管理而言，有太多的值得思考借鉴的。作者认为Evernote在过去2年多，丧失了众多的超越Onenote的机会。
&#160;&#160;&#160; 如果我是Evernote的产品经理，我会怎么做呢？总结一下文章的思路：
1、聚焦核心定位：
&#160;&#160;&#160; 相对于Onenote，Evernote作为一个尾随者，在市场影响力及可以利用的资源上都无法与Onenote相匹敌。因此首先最重要的是要时刻遵循自己区隔于Onenote的核心定位：&#34;Notes rethought in Web 2.0&#34;。要找到自己区隔于竞争对手的产品定位很容易（什么定位理论、竞争分析、蓝海理论等满大街烂遍的理论都能够完成），最难的莫过于对产品定位信仰般的坚持，莫过于在定位下对产品功能取舍的平衡及度的把握，莫过于在小有成就后能够压抑住自己进行产品延伸的冲动。
2、改变游戏规则：
&#160;&#160;&#160; 要在与Onenote的竞争中占领上风，依靠比拼功能及用户体验的方式并不能颠覆竞争的格局。一个有效的策略就是所谓的“颠覆性创新”，既然Onenote是收费的、闭源、封闭的，那Evernote可以通过开放平台、Open Source、免费方式来改变游戏规则，让对手不得不放弃其业务核心来遵循你的游戏规则及节奏。Google的「比免费更便宜」的商业模式 可以说是当下最为经典的案例。
3、“抄越”竞争对手：
&#160;&#160;&#160; 有一个强大的竞争对手有时候其实也是一种福气，至少说明市场的价值、机会以及事业的意义。强大的竞争对手是最好的老师，在聚焦核心定位、改变游戏规则的前提下，认真研究学习、抄袭竞争对手优秀的产品功能、用户体验、设计思想，山寨化之并超越之（谓之“抄越”）。虽然我们都在研究竞争对手的产品，但我们缺少对于强大竞争对手的“战略上的藐视，战术上的重视”，更多时候只是处于藐视或自卑的状态，因此基本上只是停留在功能copy层面，并没有用心去领会竞争对手产品的核心设计思想，因此所谓的“抄越”也就无从谈起。
&#160;&#160;&#160; 正如文章所说：I&#8217;m hoping Evernote wakes up, assigns at least one developer full-time to analyze what OneNote did right in usability, run their own usability tests with students, and get Evernote to be the best client-side [...]]]></description>
		<link>http://www.yeeach.com/2010/02/19/%e4%bb%8eevernote%e7%9c%8b%e4%ba%a7%e5%93%81%e7%ab%9e%e4%ba%89%e7%ad%96%e7%95%a5/</link>
			</item>
	<item>
		<title>使用CAPICOM实现证书管理</title>
		<description><![CDATA[&#160;&#160;&#160; 在基于ejbca搭建CA时候，需要实现如下功能：
&#160;&#160;&#160; 1）、在客户端实现对页面关键数据（例如订单金额等）采用签名、数字信封等方式进行加密
&#160;&#160;&#160; 2）、能够较好支持USB KEY集成
&#160;&#160;&#160; 3）、用户申请数字证书导入浏览器后，能够通过Web页面对浏览器证书进行重新申请（renewal）、删除、显示、查询、验证等功能
&#160;&#160;&#160; 单独依靠XEnroll.dll或CertEnroll.dll控件已经无法满足以上要求。微软的CAPICOM组件封装了Windows CryptAPI的各种操作，可以在Windows环境下各种语言中使用。而且CAPICOM中的大多数接口都是“脚本安全”的，可以直接在网页脚本中安全使用CAPICOM接口所提供的功能。
&#160;&#160;&#160; 需求1）、2）的实现思路：在前台利用CAPICOM组件读取浏览器或USB盘中的用户证书，对页面表单的关键数据进行SHA1签名。将签名后的密文与页面表单中的明文提交到服务器端。服务器从用户请求密文解密得到用户证书及页面关键数据的摘要（利用Bouncycastle、Apache Commons Codec），验证证书的合法性及有效性。然后对提交的页面明文计算SHA1，把得到的结果与从密文是解出摘要进行对比，从而实现数据完整性的校验。
&#160;&#160;&#160; 需求3）的实现思路：关键是要实现证书的删除、查询、验证功能，结合IE中自动安装用户数字证书 、IE中自动安装根数字证书 ，可以很容易实现相关功能。
&#160; CAPICOM中常用的类主要包括：Store、Certificates、Certificate&#160;
&#160; 基本操作步骤为：创建Store对象-&#62;打开Store对象-&#62;查找需要操作的证书集合（Certificates）-&#62;对单个证书（Certificate）进行操作
&#160;
1、一个简单例子： 
&#60;OBJECT id=&#34;capicom&#34; codeBase=&#34;http://download.microsoft.com/download/E/1/8/E18ED994-8005-4377-A7D7-0A8E13025B94/capicom.cab#version=2,0,0,3&#34; classid=&#34;clsid:A996E48C-D3DC-4244-89F7-AFA33EC60679&#34; VIEWASTEXT&#62;
&#60;/OBJECT&#62;
&#60;script language=&#34;javascript&#34;&#62;
var CAPICOM_CURRENT_USER_STORE = 2
var CAPICOM_MY_STORE = &#34;My&#34;
var CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1
var CAPICOM_STORE_OPEN_READ_WRITE=1
var myStore = new ActiveXObject(&#34;CAPICOM.Store&#34;);
myStore.Open(CAPICOM_CURRENT_USER_STORE,CAPICOM_MY_STORE,CAPICOM_STORE_OPEN_READ_WRITE);
var myStoreCerts = myStore.Certificates;
var info=&#34;&#34;;
for(i = 1; i&#60;= myStoreCerts.Count; i++)
{           [...]]]></description>
		<link>http://www.yeeach.com/2010/02/16/%e4%bd%bf%e7%94%a8capicom%e5%ae%9e%e7%8e%b0%e8%af%81%e4%b9%a6%e7%ae%a1%e7%90%86/</link>
			</item>
	<item>
		<title>IE中自动安装用户数字证书</title>
		<description><![CDATA[&#160;&#160;&#160; 在基于ejbca搭建数字证书时候，需要实现用户自助申请数字证书（Certificate signing request）并自动安装到IE浏览器中的功能（Certificate enrollment）。
&#160;&#160;&#160; 相关的资料极其缺少，好在ejbca中有相关的例子可以参考，尽管不是很完整。整理一下研究的大致成果。
1、基本思路：
&#160;&#160;&#160; 1）、Certificate signing request（CSR）
&#160;&#160;&#160;&#160; 证书签发请求（CSR），也叫做证书请求，是从请求者浏览器发送到证书中心来申请一个数字身份证书的一条信息，在公共密钥基础架构系统中。在创建一个 CSR 之前，这个请求者首先产生一个密钥对，为这个私有密钥保密。CSR 包括鉴别请求者一条的信息，和由这个请求者选择的公共密钥。相应的私有密钥不包含在 CSR 中，但是被用于数位签名整个请求。
&#160;&#160;&#160; 在XP、Windows 2003的IE上，通过XEnroll.dll控件的createPKCS10方法来生成CSR（Certificate signing request）。
&#160;&#160; 在Vista,Windows 2008，Windows 7 的IE上，需要使用CertEnroll.dll的X509Enrollment.CX509CertificateRequestPkcs10方法来生成CSR（Certificate signing request）。
&#160; 2）、用户数字证书的自动安装
&#160;&#160;&#160; 要实现用户数字证书在IE浏览器中自动安装，首先要客户端浏览器提交CSR到证书中心服务器，证书中心服务器端根据CSR对用户私钥和公钥进行签名并将签名后的证书返回给客户端。
&#160;&#160; 在XP、Windows 2003的IE上，通过XEnroll.dll控件的acceptPKCS7方法实现证书自动安装到客户端浏览器，大致步骤如下：

&#160;&#160;&#160;&#160;&#160;&#160; &#60;object id=&#8221;XEnroll&#8221; classid=&#8221;clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1&#8243; codebase=&#8221;xenroll.dll&#8221;&#62;&#60;/object&#62; 
&#160;&#160;&#160;&#160;&#160;&#160;&#160; XEnroll.acceptPKCS7
&#160;&#160; 在Vista,Windows 2008，Windows 7 的IE上，需要使用CertEnroll.dll控件的InstallResponse方法来实现自动安装到客户端浏览器，大致过程如下：
&#160;&#160;&#160;&#160;&#160;&#160; &#60;object id=&#8221;CertEnroll&#8221; classid=&#8221;clsid:884e2049-217d-11da-b2a4-000e7bbb2b09&#8243; codebase=&#8221;CertEnroll.dll&#8221;&#62;&#60;/object&#62; 
&#160;&#160;&#160;&#160;&#160;&#160; var objEnroll = CertEnroll.CreateObject(“X509Enrollment.CX509Enrollment”)
&#160;&#160;&#160;&#160;&#160;&#160; Call objEnroll.Initialize(1)
&#160;&#160;&#160;&#160;&#160;&#160; objEnroll.InstallResponse 
&#160;&#160;&#160; 此处安装用户数字证书时候并没有自动安装根证书，根证书自动安装的实现方式可以参考：IE中自动安装根数字证书 
&#160;&#160; 3）、服务器端的处理逻辑
&#160;&#160;&#160;&#160;&#160; [...]]]></description>
		<link>http://www.yeeach.com/2010/02/14/ie%e4%b8%ad%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e7%94%a8%e6%88%b7%e6%95%b0%e5%ad%97%e8%af%81%e4%b9%a6/</link>
			</item>
	<item>
		<title>IE中自动安装根数字证书</title>
		<description><![CDATA[基本思路：
1、在XP、Windows 2003的IE上，通过XEnroll.dll控件来完成根数字证书的自动安装。
2、在Vista,Windows 2008，Windows 7 的IE上，需要使用CertEnroll.dll来自动完成根数字证书的自动安装。
3、XEnroll.InstallPKCS7只适用于自动安装根证书。XEnroll.acceptPKCS7 用于安装用户数字证书，但需要配合CSR（Certificate signing request）才能够使用。要实现自动安装用户证书:
在IE中：需要配合Enroll.createPKCS10CSR来生成CSR（Certificate signing request）
在Firefox中：需要配合使用html的keygen标签来生成CSR
4、如果只需要能够下载证书并安装，而不要在IE浏览器中完成证书注销、证书申请等功能，可以采用下载证书文件的方式，MIME Type可以采用
application/x-pkcs12、application/pkcs-12
几个与PKI证书相关的MIME Type：
application/x-x509-ca-cert、application/x-x509-user-cert、application/pkcs10、application/x-pkcs10、application/pkcs-12、
application/x-pkcs12、application/x-pkcs7-signature、application/pkcs7-mime、application/x-pkcs7-mime、
application/pkcs7-mime、application/x-pkcs7-mime、application/x-pkcs7-certreqresp、application/pkcs7-signature
  测试代码:

&#60;%@ page language="java" import="java.util.*" pageEncoding="GBK"%&#62;
&#60;%@ page import="java.lang.*,java.io.*" %&#62;
&#60;html&#62;
&#60;head&#62;
&#60;title&#62;IE中自动安装数字证书测试&#60;/title&#62;
&#60;/head&#62;

&#60;body&#62;
IE中使用XEnroll.InstallPKCS7自动安装根数字证书&#60;br/&#62;
 备注：这里测试的根证书采用Base64编码 X.509格式(CER)&#60;br/&#62;
&#60;%     

StringBuffer server_cert =new StringBuffer();
try {
    String realPath = this.getClass().getClassLoader().getResource("liangchuan.cer").getPath();
    File file = new File(realPath);
    if (!file.exists()) {
     [...]]]></description>
		<link>http://www.yeeach.com/2010/02/11/ie%e4%b8%ad%e8%87%aa%e5%8a%a8%e5%ae%89%e8%a3%85%e6%a0%b9%e6%95%b0%e5%ad%97%e8%af%81%e4%b9%a6/</link>
			</item>
	<item>
		<title>为何ipad没有flash？</title>
		<description><![CDATA[&#160;&#160;&#160; iPad发布后，围绕Flash及HTML5，Apple与Adobe之间展开了热闹的争吵。
&#160;&#160;&#160; 乔布斯说：Adobe很懒惰，他们有潜力去做很有意义的事情，但却拒绝这样做，他们缺乏像苹果一样的行事方法；Flash漏洞太多，Mac计算机出现崩溃时，大多都是因为Flash出错。将来，没人再会用Flash了，都将改用HTML5。
&#160;&#160;&#160; 其实乔布斯的理由都不成其为理由。iPad之所以没有提供对Flash的支持，根本的原因在于Apple自己的战略需要：
&#160;&#160;&#160; 1、Apple要保证自己对开发平台绝对掌控权
&#160;&#160;&#160;&#160;&#160; 一个平台是否有区隔与其他平台的杀手级应用以及应用的丰富性很大程度上决定了平台的成功与否。而单靠平台提供商自身并不能提供所有这些东西，于是乎对第三方开发人员争夺成为所有平台厂商争夺的焦点。每一个平台厂商都希望开发人员只为自己平台开发专属的产品，没有那一家平台提供商愿意提供跨平台的开发。对于开发人员而言，肯定更愿意采用能够跨平台的技术来开发应用，以降低学习成本、开发成本。
&#160;&#160;&#160;&#160;&#160; 因此如果Apple允许开发人员基于Flash及Flex这样跨平台的开发技术来开发iPhone、iPad的应用，那这些应用（Mac上的Flash就是例子）及开发人员很容易迁移到其他平台，iPhone、iPad平台的独特性无疑大打折扣。这也是为何Apple一直不同意在iPhone中引入Flash的原因之一。
&#160;&#160;&#160; 2、Apple要保证自己平台及平台上各种产品独特的体验，提高用户的迁移成本&#160;&#160;&#160;&#160;&#160;&#160;&#160; 
&#160;&#160;&#160; 3、对于重要的产品应用，Apple要保证自己的产品是最佳选择，不允许有竞争产品出现
&#160;&#160;&#160;&#160;&#160; 在iPad、iPhone角力中，Flash与Safari就是竞争者。正如iPhone之于Android。
&#160;&#160;&#160; 4、自己定义产业链游戏规则，不允许有强势竞争者出现
&#160;&#160;&#160;&#160; 正如乔布斯所说：“Adobe很懒惰，他们有潜力去做很有意义的事情，但却拒绝这样做，他们缺乏像苹果一样的行事方法”。言外之意是，如果Adobe如果能够做得再稍稍好一点，那就会影响Apple作为游戏规则制定者的地位。同样，这也是Apple与Google分道扬镳的原因。所以：“没有永远的朋友，只有永远的利益”。&#160;&#160; 
&#160;&#160;&#160; Apple是一家很有品位和创新精神的公司，在这个商业社会中，能够像Apple这样始终坚持自己的信仰、品位、创新精神的公司无疑是值得尊敬的，尽管偶不是Apple的粉丝。但Apple的封闭程度又让人诟病，很难想象一家公司扮演如此的双重角色能够如此成功。
&#160;&#160;&#160; 我们可以列举众多的理由来说明开封闭平台的弊端及开放平台的优势，但Apple寻求与众不同（Think Different）的创新成就了其成功。
&#160;&#160;&#160; 成功没有定法，成功者自有道。
&#160;&#160;&#160;  

Technorati 标签: apple,ipad,flash,开放平台,互联网观察,平台战略
	
	
	&#169; chuanliang for 出家如初，成佛有余, 2010. &#124;
	  Permalink &#124;
	  No comment
	Add to del.icio.us
	Search blogs linking this post with Technorati
	Want more on these topics ? Browse the archive of posts filed under 互联网观察.]]></description>
		<link>http://www.yeeach.com/2010/02/07/%e4%b8%ba%e4%bd%95ipad%e6%b2%a1%e6%9c%89flash%ef%bc%9f/</link>
			</item>
	<item>
		<title>域名clientHold后的解锁流程</title>
		<description><![CDATA[&#160;&#160;&#160; 一个听朋友道听途说的流程，供参考：
&#160;&#160;&#160; 1、 公司写整顿报告提交给DNS提供商所在地公安局
&#160;&#160;&#160; 2、 公安局上报整顿报告到公安部11局（互联网信息中心）
&#160;&#160;&#160; 3、 公安部11局对整顿报告进行审理并批复
&#160;&#160;&#160; 4、 公安部11局把解除域名锁定的批复抄送给工信部
&#160;&#160;&#160; 5、 工信部接到公安部11局的批复后把解除域名锁定的通知下达给通信管理局
&#160;&#160;&#160; 6、 通信管理局通知DNS提供商解锁
&#160;
Technorati 标签: clienthold,域名解锁,域名,dns
	
	
	&#169; chuanliang for 出家如初，成佛有余, 2010. &#124;
	  Permalink &#124;
	  No comment
	Add to del.icio.us
	Search blogs linking this post with Technorati
	Want more on these topics ? Browse the archive of posts filed under 技术相关.]]></description>
		<link>http://www.yeeach.com/2010/02/03/%e5%9f%9f%e5%90%8dclienthold%e5%90%8e%e7%9a%84%e8%a7%a3%e9%94%81%e6%b5%81%e7%a8%8b/</link>
			</item>
	<item>
		<title>使用Varnish+ESI实现静态页面的局部缓存（思路篇）</title>
		<description><![CDATA[&#160;&#160;&#160; 页面静态化是搭建高性能网站必用的招式之一，页面静态化可以有效提升系统响应速度，同时也有利于搜索引擎优化。但在页面静态化后，静态页面之间包含（例如所有的静态页面包含页头、页脚）以及静态页面中的局部信息的动态更新又成为新的问题。
&#160;&#160;&#160; 静态页面之间的包含一般有如下一些方案：
&#160;&#160; 1、Client Side Includes(CSI)：通过frame、iframe、javascript、javacript+ajax等方式将另外一个页面的内容动态包含进来。像现在流行的jquery等javascript库对此有较好的支持。
&#160;&#160;&#160;&#160;&#160; 优点：能够利用浏览器客户端并行处理及装载的机制；通过浏览器缓存机制可以降低网络传输时间，提高性能；计算放在客户端，能够降低服务器端压力
&#160;&#160;&#160;&#160;&#160; 缺点：搜索引擎优化问题；javascript兼容性问题；客户端缓存可能导致服务器端内容更新后不能及时生效；XSS等安全隐患
&#160;&#160; 2、Server Side Includes(SSI)：
&#160;&#160;&#160;&#160;&#160;&#160; 优点：SSI技术是通用技术，不受具体语言限制，只需要Web服务器或应用服务器支持即可，Ngnix、Apache、Tomcat、Jboss等对此都有较好的支持
&#160;&#160;&#160;&#160;&#160;&#160; 缺点：SSI在语法上不能够直接包含其他服务器的url（当然也可以通过redirect等来变通实现），因此在需要充分利用缓存及负载均衡的环境下相对不是很灵活。&#160;&#160;&#160;&#160; 
&#160;&#160;&#160;&#160;&#160;&#160; 当然如果不使用单独的缓存服务器，而是使用Ngnix，利用Ngnix对SSI及Memcached支持，通过NginxHttpSsiModule、NginxHttpMemcachedModule也可以实现页面缓存，但与专业的缓存服务器（例如Varnish）相比较，Ngnix作为缓存服务器只适合于中小规模的场合。
&#160;&#160;&#160; 3、Edge Side Includes (ESI)：
&#160;&#160;&#160;&#160;&#160;&#160;&#160; Edge Side Includes(ESI) 和Server Side Includes(SSI)和功能类似。SSI需要特殊的文件后缀(shtml,inc)。ESI可以直接通过URI包含远程服务器文件，ESI更适合用于缓存服务器上，缓存整个页面或页面片段，因此ESI特别适合用于缓存。像当下流行的缓存服务器Varnish对此有所支持。
&#160;
&#160;&#160;&#160; SSI可以很容易满足让所有静态页面include其他静态页面的需求。
&#160;&#160;&#160; 大部分的网站都有这样的需求：在整个静态页面的局部有需要动态更新的内容片段，包括：
&#160;&#160;&#160; 1、与用户个性化无关的信息，所有用户进来看到的内容都一样。例如最热新闻、最活跃的用户等
&#160;&#160;&#160; 2、与用户个性化信息相关。例如用户登录信息、用户好友等
&#160;&#160; 以上两种情况，一般情况下都采用ajax方式来实现静态页面局部信息的刷新，ajax直接提交给Web服务器或应用服务器获取动态数据。或者采用Ajax+Memcached的模式，将动态变化的内容放入Memcached中，ajax直接存取Memcached，这样能够缓解Web服务器或应用服务器压力。但采用ajax的方案，直接绕过了缓存服务器，并没有充分利用缓存服务器对于静态页面的缓存支持。
&#160;&#160;&#160; 使用Varnish及其对ESI的支持很容易实现对以上两种需求的较好支持：
&#160;&#160; 1、与用户个性化无关的信息：直接由Varnish+ESI就可以实现。对于动态变化的局部页面，可以在ESI制定的url地址返回的http header的Cache-Control来指定缓存策略，实现局部页面缓存（fragment caching）。
&#160; 2、与用户个性化信息相关：对于整个页面的缓存策略仍然使用Varnish+ESI方式。而需要fragment caching的局部页面，可以根据用户Cookie信息获得用户身份标识信息（例如userid），然后在ESI的URL中带上用户身份信息提交到后端的Web服务器或应用服务器以获取与用户个性化相关的信息。可以参考：Caching logged in users 。
&#160;&#160;&#160; 简单梳理了一下基于Varnish+ESI实现静态页面缓存的思路，有空再写代码具体测试一下。
&#160;&#160;&#160; Varnish作为一个高性能的缓存服务器，值得好好研究一下。
&#160;&#160;&#160; 尽管Varnish和Ngnix都具有Load Balancing的功能，但Ngnix只能根据客户端IP进行负载均衡，不支持基于Session状态维护（session persistence）方式，无法维护Session状态；而Varnish的Load Balancing都不支持。而这正是HAproxy的强项。
&#160;&#160;&#160; 由此得到一个相对理想的架构：
&#160;&#160;&#160;&#160;&#160; Nginx (用于HTTP compression及https) &#8211;&#62; Varnish (用于reverse proxy caching) [...]]]></description>
		<link>http://www.yeeach.com/2010/01/31/%e4%bd%bf%e7%94%a8varnishesi%e5%ae%9e%e7%8e%b0%e9%9d%99%e6%80%81%e9%a1%b5%e9%9d%a2%e7%9a%84%e5%b1%80%e9%83%a8%e7%bc%93%e5%ad%98%ef%bc%88%e6%80%9d%e8%b7%af%e7%af%87%ef%bc%89/</link>
			</item>
</channel>
</rss>
