竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


318月/1183

BSP系统和工作原理

发布在 邵珠庆

BSP(Billing and Settlement Plan)是旅行代理和航空公司之间数据和资金流动的中心点。所有的信息都被BSP系统整合在一起,从而避免了每一个代理都要和每一家航空公司都要建立一个联系。
航空代理人只要通过汇款做一次付款就可以支付给所有的在BSP系统内的航空公司。所有国家/地区,所有代理的销售都可以通过BSP做一个统一的付款给每一家航空公司,。
BSP系统为代理人也提供了一个统一标准旅行文档(Standard Traffic Document, STD)用来销售所有航空公司的机票。
代理人工作流程
1.为航空公司售票作准备
在代理人为航空公司销售机票之前,必须作如下准备:
申请一段电子客票号码段和一定数量的STD
代理机构从当地IATA(International Air Transport Association 国际航空运输协会)申请标准管理表格(Standard Administrative Forms),在一些地区还需要打票机和认证标牌
BSP替航空公司为代理人授予售票权利
代理机构要能够访问一个IATA许可的售票系统,比如说一个GDS(全球分发系统,Global Distribution System)
2. 代理人工作职能
每到一个汇报时间,代理人要汇报所有的售票和资金情况。这个过程可以电子化处理,也可以通过填写代理销售汇报表(Agency Sales Transmittal Form, ASTF)。所有的文档都会被发送到一个中央BSP数据处理中心(Data Processing Centre, DPC)
3. BSP处理过程
当DPC收到文档,从代理人优惠/退票报告或者GDS,售票系统以及其他自动系统中提取出客票和款项数据。
处理所有的相关数据,给每一个代理人生成一个代理人付款分析报告。这个分析报告是从一个或很多时间段生成的。
发送一个代理人销售报告表给每一家BSP航空公司。这个报告是从一个或很多时间段生成的。
检查STD的储备量,如果需要则补充。
4. 付款
代理人只需要做一次汇款就可以为他一段时间内所售的所有航空公司的机票进行支付。BSP首选支付方式是直接转账(Direct Debit)
5. 航空公司的后续工作
每个航空公司的会计部门审计收入数据。
308月/1112

Mockingbird: 纯JS在线产品原型设计工具

发布在 邵珠庆

Mockingbird: 纯JS在线产品原型设计工具

 

4085137667 b77831672c o Mockingbird: 纯JS在线产品原型设计工具  By Web2.0 盗盗

Mockingbird 是一款基于 Cappuccino 开源框架下的产品原型设计工具,能够模拟桌面软件给予设计人员更快速的上手和实践。

Mockingbird 是一款类似于我在此前介绍的 MockFlow 产 品,它为用户提供了完全基于浏览器窗口的产品原型设计服务,由于Mockingbird 采用了Cappuccino开源框架,能够较为逼真的模拟 Axure 这类桌面软件,给用户极大的亲切感。Mockingbird  内置了常用的各种Web控件,包括Text, Link, Button, Image, List, Box 等等,鼠标拖拽便可添加至画布中;支持中文。

298月/1119

酷讯张海军谈试错:产品经理常犯的三大错误

发布在 邵珠庆

腾讯科技 8月17日上午10时30分,《新产品经理》系列访谈进行第二期,邀请嘉宾为酷讯CEO张海军做客。张海军一直从事生活搜索研发多年,是一位互联网老兵, 在产品研发中也一直试错颇多。酷讯在树立春节车票搜索后,没有再树立下一个辉煌。8月15日,张海军将与腾讯科技对话产品的试错,与酷讯的重构。

《新 产品经理》是腾讯科技重磅推出的重点访谈栏目(《新产品经理系列:伟大的互联网产品如何生长》)。新一波创业浪潮中,关注产品的CEO成为一个特别的群 体,且成功者比比皆是。史玉柱、马化腾、乔布斯等已经成为典范。《新产品经理》意在邀请以关注产品为主的正在创业的CEO进行对话,以更好地观察互联网发 展的下一个热点。

以下为精彩观点:

- 通常我们会碰到有三种错误,第一是错误地把小众的事情认为是大众化的。第二是认为自己的产品可以延伸到很多领域,可以很好地解决问题。第三是发现了一个需求,而且确实也没有被较好满足的,别人都没有做好,而认为自己能行。

- 火车票这个产品实际上是空白的。很多人春节回家找票是很痛苦的一件事,几乎是没有办法的。酷讯的创始人极好地抓住了这个需求,因为原来的痛苦足够深,所以大家对产品的追捧就足够大。

- 现在大家一提到酷讯就认为是卖火车票的。我认为这是酷讯的责任,市场宣传不到位的责任。一年前关注旅游搜索时,我们的机票搜索就已经超过了火车票搜索的产品了。因为那个产品太解决用户的痛处问题了,所以说锦上添花的东西永远没有解决疼痛的东西更能引起用户的记忆。

- 犯了这么多的错误我为什么还没有放弃?确实这个领域里是有机会的,我所说的问题是,它是没有被较好满足的很大的一块需求。既然在这个地方去做了,只要方向性没有问题的话,就会进入到第二个层面的试错的过程,我们积累的是第二个阶段的经验和知识。

- 做产品很多时候很重要的是首先是方向性试错,很小的错误微调一下就可以了。最可怕的是经历了一个大的错误,方向完全需要调整。

- 想当然地认为,某一种解决问题的方式可以很好地解决很多的问题,这叫“经验主义”。这种错误会导致其实消耗会很大。然后,酷讯做了很多很多房产的、家教的、汽车的、交友的,甚至是餐饮的。等等等等很多垂直领域的产品,但实际上都不算很成功。

- 如果前期是很优秀的产品人员,注重细节这方面能力很强,后期一定要逼着自己走出去,去感受市场和更多的目标客户交流、接触、运营你的产品,甚至是做一做销售。这会对你看产品有非常大的帮助,这是我切身的经验和体会。

以下为现场文字访谈实录:

主持人:各位腾讯的网友大家上午好!欢迎大家关注腾讯嘉宾访谈。我是主持人徐志斌。

互 联网创业人群中,有一个很有意思的群体,他们关注互联网,关注产品,用做产品的心态在做自己的事业。腾讯科技《新产品经理》系列访谈正是关注这个群体。今 天我们邀请的嘉宾是酷讯CEO张海军,他是一位从事互联网10多年的一位老兵,一直在做生活资讯、生活搜索,其中不断地调整自己的产品定位和自己的定位, 那么今天我们邀请他来谈谈试错、聊聊酷讯。

张海军:腾讯的网友大家上午好!很荣幸有机会到腾讯网来跟大家做一次交流。我是酷讯网的CEO张 海军。我确实是互联网的老兵了,但确实谈不上有很多的成绩。然而经过十多年的摸爬滚打,确实是有自己的一些体会。今天希望跟大家做一些分享,能够为大家未 来的思考带来一些帮助。谢谢大家。

主持人:其实在发预告的时候我看海军的简历写的是非常的个性。10年的过程中一直是有一个关健词“生活资讯”。自己在十年前刚刚进入这个领域做这个的时候,是有意识地去尝试吗?

主持人:过去我们所理解的生活资讯中是说我走在大街上,别人递给我的一张打折的清单或者是别人在QQ上给我发信息说打折了。

张 海军:你说的是狭义的生活搜索的范畴。一开始的时候大家比较模糊,把它放在了广义的范畴里。广义的范畴是,只要是提供生活类信息服务的,帮助用户找到生活 服务类信息的,我们都称之为生活服务的信息范畴。但你要知道信息处理的主体差异会很大的。比如说你刚才说的,我请客吃饭要找一个饭馆是一个生活信息,我要 买一个裙子,看哪儿打折也是生活信息,或者是找小时工也是生活信息。

放到广义的范畴去看的时候,很多类型的产品形态都可以归到生活信息服务 的领域和生活搜索的范畴。比如说酷讯,甚至58的信息足够的丰富,只不过是以分类的方式在进行。虽然不是开放式的角度,但也可以理解为生活搜索的范畴。但 你所说的生活搜索的理解也是我认可的,就是狭义的生活搜索的概念。

我把它加上几个定语,应该是本地用户的日常深入信息服务。为什么要加上这 么几个用户。第一个是本地用户,我们要把它放到狭义的范围里,生活搜索更精准地面对本地用户,长期在一个物理区域里生活的用户群。这时候你会发现,他的需 求相对而言是容易去清晰定义的。比如说他去喝茶、去超市购物、洗牙等等。但你说异地来的人,如果到这边是短暂居住的话,他可能对很多的信息价值不大。再一 个就是所谓的日常生活,就是说他有足够的平度,有足够的重复性的需求。如果这时候提供给他的话,应用的平度就比较广。生活搜索如果放到狭义的角度来看,处 理的是两种信息。

我认为最典型的两种信息,一个是所谓的位置类信息。比如说饭馆、咖啡厅、美容院,是很精准的。你住的地方的方圆多少公里之 类的信息,这块的信息对你很重要。还有一种时效性信息,它有很短的生命周期,你们家楼下的一个咖啡店正在搞一个促销,这时候这个信息更侧重在促销的内容和 时间性上。当然,酷讯现在做的比如说机票就是比较典型的时效性的,是一种特价的信息、一种促销信息。最便宜的机票时效性会很强,要以最快的方式获取它。生 活搜索最终会发现,抽象起来是处理这两类信息。

主持人:比如说我在听海军在讲的时 候,人群可以直接地划分分两块,第一个是住家,旁边的咖啡馆的打折信息非常地重要。如果我要出差的话,机票的信息或者是旅馆的信息很重要。这是一个人的不 同的需求层面。但首先是产品的出发点怎么样去摸它,比如说让用户来找到这些信息,还是按照一个人进来之后,系统首先是揣摩相应的需求呢?

张 海军:分两个层面,如果是进入产品的初期要构建一个新的产品的时候,这时候更多要做调研和用户的测试,需求的分析。这种分析的过程我认为是很重要的来帮助 你来决定你要做什么的一个方向。这就是说,一个好的产品本身首先要具备的能力,就是要发现一个空白或者是未能被较好满足的用户需求。这种感知力我认为很重 要。我强调两个点,一个是空白、一个是未较好满足。空白这个东西是很难的,是可遇不可求的。未较好满足,我认为只要你用心还是可以做得很好的。未较好满足 表述的意思是,我们犯错误很当然地认为是没有被较好满足,但实际上并不是这样的。未较好满足再换一个直白的话,基本上这个需求没有被满足得很好,不够好, 而且是相当不够好。

主持人:海军这个话可以这样来看,酷讯的火车票的搜索在春节期间就是大家都有需求和途径在提供,但没有被解决得很好。

张 海军:火车票这个产品实际上是空白的,在过去很长的时间内,没有酷讯提供火车票产品之前,很多人春节回家找票是很痛苦的一件事,几乎是没有办法的。因为排 队是没有戏的,基本上没有其他很好的办法可以解决这个问题。或者是相对小部分的来解决这个问题。但酷讯的创始人极好地抓住了这个需求。他作出了这个产品引 爆了一个点,大量的用户来用酷讯的火车票。这个产品是很难非常完美地解决用户需求的,它只能是相对的来解决用户的需求的,因为票源是有限的。但即便是如 此,因为原来的痛苦足够深,所以大家对产品的追捧就足够大。以至于现在大家一提到酷讯就认为酷讯是卖火车票的。我认为这是酷讯的责任和市场宣传不到位的责 任。一年前我们关注到旅游搜索这件事的时候,我们的机票搜索就已经超过了火车票搜索的产品了。因为那个产品太解决用户的痛处问题了,所以说锦上添花的东西 永远没有解决疼痛的东西更能引起用户的记忆。

主持人:您说酷讯火车票的搜索,我有三个问题。春节的时候火车票搜索需求是一个巨大的高峰,第 一,你如何抹平这个高峰曲线?或者第二是如何找到更多高需求,来提升流量曲线?第三个问题是,你的用户实际上已经开始在左右着你产品的走向了,他甚至不用 你其他的产品了。你在怎么做?

张海军:其实,说一句实话,我们说做产品很多时候很重要的是首先是方向性试错,一些好的公司上来以后方向就是 错误,或者是很小的错误微调一下就可以了。最可怕的是经历了一个大的错误,方向完全需要调整。我们最初进入了一个方向就是火车票,解决异地转移的问题,人 与人的空间转移问题。我们做了,点燃了一个引爆点,这时候会认为我们这种产品的方式,其实把它拷贝、复制到很多的领域,都可以解决。

这也是 沿着前面的观点,就是做产品的时候容易犯的第二种错误。想当然地认为,某一种解决问题的方式可以很好地解决很多的问题,这叫“经验主义”。这种错误会导致 其实消耗会很大。然后,后面你也知道我们做了很多很多房产的、家教的、汽车的、交友的,甚至是餐饮的。等等等等很多垂直领域的产品,但实际上都不算很成 功。

后来经过这两年的摸索,我们发现了一个很痛苦的事,真正能带来大量用户的火车票产品因为季节性的影响出现了曲线的波峰、波谷动荡非常 大,很难形成持续、稳定、有效的用户群。我们摸索了很多其他的领域发现难以解决这个问题。我们就想怎么样把曲线拉平,经过自己的探索和试错以后,我们发现 应该在出行的维度上进行有效的延伸和扩张。我们通过火车票已经拉来了大量的用户,他们要解决自己的出行问题。这时候我们应该延伸出,用户的出行除了春节以 外还有很多的维度,比如说要出差、旅游等等,这都出现了物理空间的转移,这时候我们就想到了是不是可以做机票的搜索。这时候机票和火车票搜索的核心价值点 是不一样的,火车票解决的是一票难求的问题,稀缺资源怎么样通过互联网的方法在最短的时间内进行转移。而机票通常的情况下不是稀缺的问题,但有一种资源是 稀缺的,就是低价票的资源。我要出去,要用最低的成本,对企业来说可以减少成本,对个人来讲减少出行的开支。这个需求在中国的市场是非常庞大的。我们沿着 火车票走出行,进入到机票领域,马上发现这里面有很好的点,而且需求量非常大。

我们上了这个产品以后,很快用户量就快速地成长了起来,几乎 已经超越了火车票的用户两。从机票产品之后,我们又延伸异地出行的人连带的,比如说住酒店。酷讯成长的例子归根到底反映了一点,我们做好做的一件事是在用 户需求维度上进行延伸,从一个点到另外一个点,而且需求和需求之间有连带性和相关性。这就是我们为什么坚定不移地做旅游搜索的原因之一。当然,现在想想我 们犯的错误是生产性的错误,生产性的观点是你能做什么我能做什么。市场性的观点是,市场需要什么我就做什么。原来酷讯做的是基于很好的研发团队和很好的产 品形态,拼命地按照这种思路来扩张出很多的产品,想当然地认为用户会需要,现在酷讯做的是完全转变了,我们根据用户需求做有效性的延伸,把用户需要的东西 在适当的东西推送给他。这时候自然而然会让酷讯柳暗花明又一村。

张海军:应该不是有意识的。这算是一种机缘,我毕业以后进了一家大国企,广 电总局下属的公司做数字电视和数字广播这一块的。我在那里主要是负责市场和产品。当时不是基于互联网做的东西,是基于有线电视网先老百姓传送一些数字内 容,比如说股票和生活资讯,还有一些影院性质的东西。但那时候是最早的接触怎么样向老百姓传送生活资讯他会感兴趣,包括老大妈看看超市什么东西降价了、便 宜了。那时候对这个东西有了比较多的接触。

但应该还不算是互联网,真正到的互联网的时候是做神州在线的时候。后来我做了SP业务承做了一个 门户网站。我们开始创造性地做营销策划,把自己的产品推广出来,因为SP业务后来的调整和整顿很多的东西不太好做,要做一些实用性的东西,把生活的资讯和 SP业务怎么样结合起来。比如说当时做了基于短信、彩信和WAP的最早的生活搜索,比如说发一个火锅到我们这里,我们就会给他们资讯。我认为应该算是国内 比较早的做这件事的人。因为SP业务不断的下滑,那个下滑的速度是相当惊人的,子弹是越来越少,用于培养新的SP业务的资源会越来越少,我的事业部刚开始 是赚钱的,要自负盈亏,拿从SP挣来的钱来养生活门类的业务。

那时候周鸿祎正好创建了奇虎网,在做无忧城市的计划。我也没多想,觉得这是一 个机会,就参与到这个团队里面来,因为这个团队足够有能力,而且周总也是我比较崇拜的人,我就加入了。无忧城市的那些人是很有能力的,他们有自己创业的, 也有的做到了公司的比较高的位置。周总给我们的条件非常好,我们是玩命地在干,而且有枪有子弹的感觉。我们做起来还是感觉很累,感觉有时候遇到的困难和困 惑不是轻易可以逾越或者是解决掉的,这样的话经历了一段时间以后,这个业务的发展速度、发展的规模跟公司想达到的预期差距是比较大的。我们就开始寻求转 变,也尝试做了一个类似酷讯的基于垂直搜索概念的产品,时间也不是很长、不是很成功,基本上做了一段时间大家就放弃掉了。之后我就来到了酷讯,继续我生活 搜索的梦想。我进入生活信息服务领域大概是这样一个过程,年头比较长,经历的事情多。大多数的时候没有形成大的规模。

主持人:海军的开场白里有一些内容我听得比较有意思。你说“那是我们认为的生活资讯”。10年前、8年前你认为的生活资讯是什么,到了现在你在酷讯的时候,对生活资讯的理解又是什么?

张海军:主持人问得非常好。我对生活搜索和生活信息服务的理解是经历了一个演变的过程的。从比较粗浅到相对比较深刻的过程。生活搜索没有什么很标准和准确的定义,没有一个权威性的公司和权威性的人站出来说生活搜索是什么。我认为应该分成广义和狭义两个方面。

主 持人:我有一些小的问题,在谈到旅游搜索、在谈到机票搜索或者酒店搜索的时候,我就不由自主地想起来这会不会是酷讯的优势,携程已经做了很长的时 间,12580也都在做,首先的主打电都是最低价。但有一个不擅长的领域进来和他们竞争,你的优势在哪里?你的产品为什么和别人的不一样,我为什么要有这 个产品?

张海军:这是比较深地谈产品的问题了。我认为还是回归到最初做产品的本源上。很多的东西是不能离开原则性的问题的。我们做产品容易犯的错误就是想当然地认为有很大的需求,实际上并不大。

主持人:你们之前做过很长时间的调查吗?

张海军:应该是这样的。

主持人:用户认准酷讯做旅游搜索吗?

张 海军:是的,从现在的实际来看已经佐证了这一点,我们第三方的数据仅次于携程。做方向的时候要考虑的问题是,这个需求是不是被较好的满足,这很重要。很多 人认为买机票、找酒店已经被携程和易龙较好地满足了,为什么酷讯还要做?我们经过一年多的摸爬滚打,前期我们也做了大半年的市场调研,和用户的测试和观 察,结果你会发现易龙、携程只是在某种用户的层面上较好解决了。什么类型?那些比较中高端的商旅人士,他们对价格的东西不敏感,他们更多的目标是集中在大 中型城市的商务型酒店,这种需求确确实实是被较好满足了。因为要求的是服务品质,易龙和携程已经做到极致了。你去做一个所谓能够帮别人解决的产品已经很难 了。

这时候我们发现了,其实有另外一个大量的用户群存在。比如说中小型企业,比如说是个人资费出行的这些人,他们会在成本的控制、会在点的 差异化上,他到达的目的地和酒店的需求差异是非常大的,我们发现这里面的空间和需求是非常大的。从现在的实际情况来看,比如说我们推出的机票搜索,我们主 打的是把更多的票价信息做到更透明化,让用户在任何一个时间点策划自己出行的时间。比如说携程的用户行为特征和我们的用户行为特征是不一样的。我们的用户 并不强制在某一天出行,他更多的时候寻找哪天出去的时候成本最低。从大的市场层面来看,商旅型人士占了一半的市场,自己出行的人占了另外一个市场。这个市 场足够的庞大,这是我们的增长点,而且我们的用户量规模是相当大的。这也佐证了我们当初的判断和用户市场调研是正确的。至少这个方向在未来的很长时间内, 是存在现实需求的。

主持人:我记得海军一开始在介绍自己工作领域的时候也讲起过在奇虎网的工作历程,说有枪有子弹,但依然做得很累很困惑,我不是很明白,那时候的困惑会体现在哪些方面?

张 海军:说实在话,归根到底还是产品方向性的问题。还是在第一个层面上,就是通常所说的第三种方向上的错误,第一是错误地把小众的事情认为是大众化的。第二 是认为自己上传的东西可以延伸到很多其他的领域,可以很好地解决问题。第三我认为很重要的问题是,我们确实是发现了一个需求,而且确实也没有被较好满足 的。这时候通常情况下被认为是一个机会,需求也很大,又没有较好地被满足,当然是一个机会了。我们这帮人能力还可以,应该可以把这件事做成啊,或者是别人 解决不了的问题,我们可以解决好。我们就做了,

但随着我们自己不断的深入,很多事情就是这样子,你站在外面看永远只是雾里看花,内行看门 道、外行看热闹。你没有作过实际的事情,永远会感觉到很热闹,甚至会指手划脚的说,现在做这些事的人真傻、真笨。你自己真正做了以后,原来我们认为其实用 我们的创新性的思路和想法能解决问题,其实不尽然。真正做得越深就会发现,原来我们发现的致命性的没有解决好的问题,我们自己同样也解决不好。这时候我们 自然而然会进入到一种困惑。其实事情不是你想像的那么简单,别人犯过了错误也都想办法解决了,没有解决了。你来想把它解决掉也是很难的事。我认为这是我们 在奇虎网遇到的最大的问题。别人解决不了的问题,其实你也很难解决得了。

主持人:海军讲的一个是想当然,一个是经验主义,非常有意思。但是这时候会回到一个根本上来,既然已经困惑了,已经发现了我们过去想当然、经验主义。如果可以改变的话,一般你们会做什么?

张海军:如果你发现了你是方向性的错误,第一就是把小众的认为是大众的。第二,你认为没有被较好满足的,其实已经被较好满足了。第三,你认为能很好地做这件事的,其实是不行的。这是三个最大的方向性错误。

主持人:第一个好说,大家会直接清盘走人。

张 海军:第二种很多人会坚持,虽然有人做了,而且也人在使用这项服务了,但有瑕疵了,你认为别人做得不好确实有一些东西会比原来的做得好。但是,那个时候会 坚持相当长一段时间,认为能打败别人。但这时候往往会发现其实很难。即便有一些瑕疵,但是已经形成了用户的使用习惯了,这个习惯没有足够大的资本量和市场 传播和运营能力是很难打倒对方的。这变成了领先者的试验田,这边做出什么东西以后,那边大家会马上把这个东西拿过去,你永远没有出头之日。如果自己没有足 够的资金和能力去撑很长的时间,或者你有足够的自信心,象淘宝打败易趣的话,那样的做法也可以。

第三种是,需求是很大的也没有被较好的满 足,很多人都失败了,但你认为我可以做成功,这时候是最痛苦的。有些时候这是悖论的东西,有些人坚持下来就成为大家了,伟大的成功者。很多时候就是死在沙 滩上了,你也解决不了这个问题。你所掌控的资源和所处的时机也解决不了。最危险的实际上是后两者,更危险的是第三者。第二者有时候你想想就算了。你发现这 个山已经跃不过去的时候,你会退缩的。但第三种的时候,一种是掉下悬崖摔一个粉身碎骨,再一种是走向顶峰。

主持人:我们要么自己想当然、经验主义,要么我们需要重新地认识自己,或者是坚持下去,或者是尽早地撤退走人。海军自己在这10年的过程中,一直坚持做生活资讯这块,那么你自己在重新认识自己这块和对产品的理解上,自己有没有特别大的一些感触呢?

张 海军:对这个领域说实在话,我们现在都已经看得很清楚了吗?我认为在一件事没有做成功之前都不要说这句话。我认为在成功之前很漫长的一段路都可以称之为探 索的过程。这个探索的过程是很艰苦的。我为什么会对犯错误总结得头头是道呢?是因为我们犯了太多的错误,所以我会有很深的反思和总结。

犯了 这么多的错误我为什么还没有放弃?确实这个领域里是有机会的,我所说的问题是,它是没有被较好满足的很大的一块需求。既然在这个地方去做了,只要方向性没 有问题的话,就会进入到第二个层面的试错的过程。我认为第二个层面就是找对了方向以后,怎么样把产品做好,用正确的方法去做。前面是做对了,现在是正确地 去做。这个试错是所有的互联网公司一定要做的,不可能他们在做产品的时候不犯错误。有些公司是经常、重复犯错误。但有些公司是犯了错误以后第二次不会再 犯。我们积累的是第二个阶段的经验和知识。

主持人:如何做正确的事。海军也讲过,前面有大家伙在拦着,自己会多一层思考。前面的大家伙不算 小比如说谷歌和百度,而且从他们公司出来的人都在做这个领域。你所谈到的我们第一期的访谈的嘉宾也做了这个领域,百度的刘建国也做这个领域。实际上和你同 时跑的大家伙也不算少了,你怎么衡量?

张海军:这是我能自信做这件事的根本出发点。

主持人:大方向对了大家都在做。

张海军:而且他们也犯我从先犯过的错误。我们现在做的这件事至少是在过去很多经验错误积累之上,正在朝正确的方向去走。这很重要。现在很多的生活领域里,还有很多的新进入者都在做我们5、6年前做过的事,真的是很多。

主持人:但这里面有很有意思的指标。海军你说现在酷讯已经走在了一个通往成功的道路上,但哪些指标和迹象可以判断呢?

张 海军:第一,我们是不是落在了前三个方向性的错误上?如果落在上面了,走的就不是正确的道路了。我们做的市场极度大众化。第二,是不是没有被较好的满足, 确实是这样的。因为我们所面对的服务需求是不一样的。所以本质意义上我跟携程、易龙不竞争,我们赋予不同的对象。他们不是我市场前进道路上的大山。我没有 需要逾越的大山和巨无霸。第三,我们没有犯认为别人解决不了,我们能解决的错误。因为我们现实的情况是解决得还不错。比如说机票产品,经过这一年多接近两 年时间的运营,我们从零已经做到了数十万用户群的规模,这是相当伟大的一个成功。这是过去携程、易龙这种公司经过很多年才能培养的用户群的规模。这个东西 就佐证了一点,我们是走在了正确的方向上。我们就是认认真真地做一件事,在较短的时间内培养了足够大的用户群,而且他们会对你产生依赖。

主持人:这是不是基于庞大的互联网的用户群呢?

张 海军:其实不是这样的。现在互联网除了娱乐性的,我认为可以这样比拟,比如说游戏类的、社区类的,为了消磨时光,我们的产品和服务不是为了消磨时光而是为 了解决问题的。解决问题的产品很重要的是依托于现实用户的需求规模这是不会突变的。比如说坐飞机,虽然说中国的民航事业是在逐步往上走的,但需求的规模相 对上不会象互联网那样爆炸式的增长。即便有3、4亿的网民,但是有坐飞机需求的人永远是这么一小群。所以我们做这件事不是基于互联网用户的判断,我们的服 务平台跟娱乐性的门户去比的话我们是没法儿比的。我的访问量做到这个规模价值量已经非常大了。就是在于是对实际使用需求所占有的市场份额有多大。比如说一 天又80万到100万的用户找机票出行的话,我占据了其中的多少?这个概念就很直观了。你的价值会非常非常大。

主持人:现在一路看酷讯发展,也已经走在了成功的道路上。但你判断什么时候我们能够判定它已经做得成功?或者说酷讯已经成功的标准是什么?

张 海军:我认为酷讯成功的标准有几个方面:如果从公司的层面上有几个标准,一个是用户量、一个是收益规模,包括团队的成熟程度,这都意味着是不是成功。但如 果说从产品的角度来讲,我认为互联网产品是不是成功两大标准就够了。一个是确确实实占据了相对优势的市场份额,用户对你产生了足够大的依赖。他想起这分析 的需求会用你。第二,在构建这个产品的过程中很好地融入了商业化的思考,随着用户量的增长,你的收益在成正比例的增长。这就已经是成功了,至于说是不是上 市了,卖了很多很多的钱,那倒是次要的。

主持人:因为时间的关系,我们要进入最后一个小问题。海军做了10年,一直在这个领域里做产品和运营,我很奇怪做运营了以后对于产品的理解、思路有什么改变和帮助呢?互相的带动会有什么样的好处吗?和纯做产品相比。

张 海军:这确确实实差异会非常大。我经常跟我们的同事说,我是产品人员创业经常会犯的错误,第一个是这个人用户的感觉很好,对用户需求的把握很好,善于数字 分析、用户行为的分析,在适当的时候改变自己的产品找到合适的点。但这种类型的产品人员很多时候缺乏在构想产品之初设想自己商业化的未来。这时候因为不做 运营的人,会经常犯这种错误。

但互联网有一个概念,做产品刚开始是赢得足够大的用户。但我觉得是有事偏颇的。量足够大的时候就可以质变,总 归有办法是挣钱的。但这里面有一个办法是,真正是基于互联网的基础应用吗?真正能做到这么大的量吗?我们的生活资讯不是这样的。不是基础性应用的时候,一 定要考虑商业化。还有一个是知识的单一化,很多的产品人员都是技术出身,是学计算机出身的。你要知道做一件事,尤其是管理好一个公司,它比做一个产品要负 责得多得多,营收的问题和管理的问题,都是在运营的过程中会感受到的。

再一个我认为会犯的错误是,刚开始做的时候容易解决的问题是,在做的 过程中因为刚开始的产品线比较少,运营相对比较简单,精力也足够运营这个公司。但随着公司规模大了,精力有限,而且又会关注到产品的细节,做得不够完美就 会很生气。这时候也会出问题。所以说从我个人的角度来讲,有了足够的运营以后,就会发现做很多的事会寻求平衡。比如说在产品完美程度上,产品不一定是非到 完美的时候再做运营和推广。

这里面是相辅相成的过程。你认为已经能满足70%、80%用户需求的时候,或者是产品的体验不是那么让人难以忍 受的时候,去市场碰撞,用户会告诉你你应该怎么样地调整和优化产品。这是运营过程中很重要的一个点。再一个,运营要求一个人的能力是多维度的,必须善于观 察市场,甚至是他更有大局观或者是更有宏观思维的能力。很多的产品人员更注重微观。具有很强的微观思维的能力,又有很超强的宏观思维的能力,这种人才是很 少的。腾讯的马总是百年一遇的人,所以他才能成就很大的事业。产品人员做这件事的时候,如果你前期是很优秀的产品人员,你注重细节这方面能力很强,后期一 定要逼着自己走出去,去感受市场和更多的目标客户交流、接触、运营你的产品,甚至是做一做销售。这会对你看产品有非常大的帮助,这是我切身的经验和体会。 其实,我再做产品的过程中,我一直在遵循这一点,我时常会拜访我的客户。这一段时间我会集中去跟我的客户交流。然后我会很注重地参加我们公司每次的用户体 验测试,我去听用我们产品的这些怎么样描述和使用我们的产品。再一个我们会跟我们的合作伙伴交流。在做合作和活动的时候,我们会想他怎么看待酷讯的产品, 他怎么样跟他的产品对接。这些都会对产生人员进行多维度的锤炼和锻炼。回来再看自己的产品的时候,会有很多新的视觉和观点。

主持人:实际上海军的话我们可以总结为一句,今天的产品经理尤其是创业的产品经理,需要的是多维度的,而不仅仅限制在产品本身。

我们要特别谢谢海军把自己十年来不断的试错的经验,宝贵的做产品的经验和我们分享。非常感谢海军。

张海军:有机会可以多交流。谢谢!

298月/112

网站导航设计模式指南

发布在 邵珠庆

在网页设计中有一些通用的交互设计模式。网站导航各种各样的通用和大家熟知的设计模式,可以用来作为为网站创建有效地信息架构的基础。这篇指南涵盖了流行的站点导航设计模式。对于每一种网站导航栏设计模式,我们将讨论它的一般特征,它的缺点,以及什么时候使用它最好。


 

顶部水平栏导航
顶部水平栏导航是当前两种最流行地网站导航菜单设计模式之一。它最常用于网站的主导航菜单,且最通常地放在网站所有页面的网站头的直接上方或直接下方。

顶部水平栏导航设计模式有时伴随着下拉菜单,当鼠标移到某个项上时弹出它下面的二级子导航项。

顶部水平栏导航一般特征
导航项是文字链接,按钮形状,或者选项卡形状
水平栏导航通常直接放在邻近网站logo的地方
它通常位于折叠之上


顶部水平栏导航的缺点
顶部水平栏导航最大的缺点就是它限制了你在不采用子级导航的情况下可以包含的链接数。对于只有几个页面或类别的网站来说,这不是什么问题,但是对于有非常复杂的信息结构且有很多模块组成的网站来说,如果没有子导航的话,这并不是一个完美的主导航菜单选择。

何时使用顶部水平栏导航
顶部水平栏导航对于只需要在主要导航中显示5-12个导航项的网站来说是非常好的。这也是单列布局的网站的主导航的唯一选择(除了通常用于二级导航系统的底部导航)。当它与下拉子导航结合时,这种设计模式可以支持更多的链接。

竖直/侧边栏导航
侧边栏导航的导航项被排列在一个单列,一项在一项的上面。它经常在左上角的列上,在主内容区之前——根据一份针对从左到右习惯读者的导航模式的可用性研究,左边的竖直导航栏比右边的竖直导航表现要好。
侧边栏导航设计模式随处可见,几乎存在于各类网站上。这有可能是因为竖直导航是当前最通用的模式之一,可以适应数量很多的链接。


它可以与子导航菜单一起使用,也可以单独使用。它很容易用于包含很多链接的网站主导航。侧边栏导航可以集成在几乎任何种类的多列布局中。

侧边栏导航的一般特征
文字链接作为导航项很普遍(包含或不包含图标)
很少使用选项卡(除了堆叠标签导航模式)
竖直导航菜单经常含有很多链接 


 

竖直/侧边栏导航缺点

因为可以处理很多链接,当竖直菜单太长时有时可能将用户淹没。尝试限制你引入的链接数,取而代之可以使用飞出式子导航菜单以提供网站的更多信息。同时考虑将链接分放在直观的类别当中,以帮助用户很快地找到感兴趣的链接。

何时使用竖直/侧边栏导航
竖直导航适用于几乎所有种类的网站,尤其适合有一堆主导航链接的网站。

选项卡导航
选项卡导航可以随意设计成任何你想要的样式,从逼真的,有手感的标签到圆滑的标签,以及简单地方边的标签等。它存在于各种各样的网站里,并且可以纳入任何视觉效果。


选项卡比起其它类别的导航有一个明显的优势:它们对用户有积极的心理效应。人们通常把导航与选项卡关联在一起,因为他们曾经在笔记本或资料夹里看见选项卡,并且把它们与切换到一个新的章节联系在一起。这个真实世界的暗喻使得选项卡导航非常直观。

选项卡导航的一般特征
样子和功能都类似真实世界的选项卡(就像在文件夹,笔记本等中看到的一样)
一般是水平方向的但也有时是竖直的(堆叠标签) 
 

选项卡导航的缺点

选项卡最大的缺点是它比简单的顶部水平栏更难设计。它们通常需要更多的标签,图片资源以及CSS,具体根据标签的视觉复杂度而定。选项卡的另一个缺点是它们也不太适用于链接很多的情况,除非它们竖直地排列(即使这样,如果太多的话它们还是看起来很不合适)。

何时使用选项卡导航
选项卡也适合几乎任何主导航,虽然它们在可以显示的链接上有限制,尤其在水平方向的情况下。将它们用于拥有不同风格子导航的主导航的较大型网站是个不错的选项。

面包屑导航
面包屑的名字来源于Hansel和Gretel的故事,他们在沿途播撒面包屑以用来找到加家的路,这可以告诉你在网站的当前位置。这是二级导航的一种形式,辅助网站的主导航系统。


面包屑对于多级别具有层次结构的网站特别有用。它们可以帮助访客了解到当前自己在整站中所处的位置。如果访客希望返回到某一级,它们只需要点击相应的面包屑导航项。

面包屑的一般特征
一般格式是水平文字链接列表,通常在两项中间伴随着左箭头以指示层及关系
从不用于主导航 
 

面包屑导航的缺点

面包屑不适于浅导航网站。当网站没有清晰的层次和分类的时候,使用它也可能产生混乱。何时使用面包屑导航。面包屑导航最适用于具有清晰章节和多层次分类内容的网站。没有明显的章节,使用面包屑是得不偿失。

标签导航
标签经常被用于博客和新闻网站。它们常常被组织成一个标签云,导航项可能按字母顺序排列(通常用不同大小的链接来表示这个标签下有多少内容),或者按流行程度排列。

标签是出色的二级导航而很少用于主导航。他可以提高网站的可发现性和探索性。标签云通常出现在边栏或底部。如果没有标签云,标签则通常包括于文章顶部或底部的元信息中,这种设计让用户更容易找到相似的内容。

标签导航的一般特征
标签是以内容为中心的网(博客和新闻站)站的一般特性
仅有文字链接
当处于标签云中时,链接通常大小各异以标识流行度
经常被包含在文章的元信息中
标签导航的缺点
人们通常把标签和博客和新闻网站联系在一起(有时候也可能是电子商务网站),所以如果你的网站与这些网站有本质的不同,它可能对你就没有帮助。标签也会给内容创作者带来一定量的工作量,因为为了使标签系统有效,每篇文章都需要打上准确的标签。

何时使用标签
如果你拥有很多主题,为内容打上关键词标记是很有利的。如果你仅有几个页面(可能你的网站是一个公司网站),可能就不需要给内容打标签了。是否结合标签云或只是将标签包含在元信息中得取决于你的设计。

搜索导航
近些年来网站检索已成为流行的导航方式。它非常适合拥有无限内容的网站(像维基百科),这种网站很难使用其它的导航。搜索也常见于博客和新闻网站,以及电子商务网站。

搜索对于清楚知道自己想要找什么的访客非常有用。但是有了搜索并不代表着就可以忽略好的信息结构。它对于保证那些不完全知道自己要找什么或是想发现潜在的感兴趣内容的浏览者可以查找到内容依然非常重要。

搜索导航的一般特征
搜索栏通常位于头部或在侧边栏靠近顶部的地方
搜索栏经常会出现在页面布局中的辅助部分,如底部
搜索导航的缺点
搜索最大的缺点是并非所有搜索引擎都是平等的。取决于你选择的方案,你网站的搜索特性可能不能返回精确的结果或者缺失一些东西如文章元数据。搜索导航,对于大部分网站来说,应该作为次要的导航形式。搜索是用户在无法被导航到他们想找的东西的地方时的可靠选择。

何时使用搜索导航
对于具有无数页面并且有复杂信息结构的网站来说,肯定必须引入搜索功能。没有它用户可能很难通过遍历链接和多层的导航来找到他们想要的信息。搜索对于电子商务网站也非常重要,而关键的一点是电子商务网站的搜索结果要根据网站存货的多少具有相应的筛选和排序功能。

出式菜单和下拉菜单导航
出式菜单(与竖直/侧边栏导航一起使用)和下拉菜单(一般与顶部水平栏导航一起使用)是构建健壮的导航系统的好方法。它使得你的网站整体上看起来很整洁,而且使得深层章节很容易被访问。

他们通常结合水平,竖直或是选项卡导航一起使用,作为网站主导航系统的一部分。

出式菜单和下拉菜单导航的一般特征
用于多级信息结构
使用JavaScript和CSS来隐藏和显示菜单
显示在菜单中的链接是主菜单项的子项
菜单通常在鼠标悬停在上面时被激活,而有时候也可能是鼠标点击时激活


出式菜单和下拉菜单导航缺点
除非你在主导航链接边上放置一些标识(通常是箭头图标),不然访客可能不知道那有包含子导航项的下拉或出式菜单,因此使这些标识很明显是非常重要的。同时出式菜单和下拉可能使得导航在移动设备上非常难用,所以要确保你的移动样式表处理了这种情况。

 

何时使用出式菜单和下拉菜单导航
如 果你想在视觉上隐藏很大的或很复杂的导航层次,出式菜单和下拉是很好的选择,因为它让用户决定他们想看见什么,以及什么时候可以看见它们。它们可以用来在 不弄乱网页的情况下按需显示很大数量的链接。它们还可以用来显示子页面和局部导航,并且不需要用户首先点击打开新的页面。

分面/引导导航
分面/引导导航(也叫做分面检索或引导检索)最常见于电子商务网站。基本上来说引导导航给你提供额外的内容属性筛选。假设你在浏览一个新的LCD显示器,引导导航可能会列出大小,价格,品牌等选顶。基于这些内容属性,你可以导航到匹配你的条件的项。

引导导航在拥有巨大数量货物的大型电子商务网站中是非常宝贵的。用户通过直接搜索通常很难找到他们想要的东西,并且增加了用户漏掉一个产品的或能性。例如他们可能搜索一个灰褐色的产品,但你可能将它标记了灰色或褐色,虽然它可能就是用户想要的东西。

分面/引导导航的一般特征
最常见于电子商务网站
通常让用户对不同的特征做多次筛选
几乎总是使用文字链接,分解在不同的类别下或是下拉菜单下
常常与面包屑导航一起使用
分面/引导导航的缺点
引导导航可能会引起一些用户的迷惑。另外不能保证用户会在你预先定义的类别中查找。

何时使用分面/引导导航
分面导航对于大型电子商务网站非常有用。它方便了用户购物,提升了购物体验,并更容易找到它们真正想要的东西。它也可以用于其它目录风格的网站。

页脚导航
页脚导航通常用于次要导航,并且可能包含了主导航中没有的链接,或是包含简化的网站地图链接。

访客通常在主导航找不到他们要找的东西时会去查看页脚导航。

页脚导航的一般特征
页脚导航通常用于放置其它地方都没有的导航项
通常使用文字链接,偶尔带有图标
通常链接指向不是那么关键的页面
页脚导航的缺点
如果你的页面很长,没有人愿意仅仅为了导航而滚动到页面底部。对于较长的页面,页脚导航最好作为重复链接和简要的网站地图的地方。它不适合作为主导般形式。

何时使用页脚导航
绝大多数网站都有这样那样的页脚导航,即使它只是重复其它地方的链接。考虑什么放在那有用,以及你的访客可能最想找什么。

结论
大 多数网站使用不只一种导航设计模式。例如一个网站可能会用顶部水平栏导航作为主导航系统,并使用竖直/侧边栏导航系统来辅助它,同时还用页脚导航来作冗 余,增加页面的便利度。当选择你的导航系统基于的导航设计模式时,你必须选择支持你的信息结构以及网站特性的方案。导航是网站设计的重要部分,它的效果必 须有坚实的基础设计。

268月/110

Web-IA专业版报表说明

发布在 邵珠庆

Web-IA专业版报表说明

 

 常规分析
1、概要分析
2、指标分析
3、频道访问分析
4、原始访问记录查询
5、错误类型分析
6、访问状态分析

 浏览数分析
1、浏览数地区分析
2、浏览数时段分析

 访问分析
1、访问地区分析
2、访问时段分析

 用户分析
1、用户地区分析
2、用户时段分析
3、唯一IP分析

 变化趋势分析
1、浏览数趋势分析
2、访问趋势分析
3、用户趋势分析
4、停留时间趋势分析
5、首页浏览数趋势分析
6、点击数趋势分析

 网页分析
1、页面浏览数分析
2、页面停留时间分析
3、页面类型分析

 访问行为分析
1、进入页面分析
2、离开页面分析
3、访问次数分析
4、访问时长分析
5、访问轨迹分析

 客户来源分析
1、客户来源网址分析
2、搜索引擎分析
3、搜索关键字分析

 技术分析
1、Internet 接入方式分析
2、运营商分析
3、用户浏览器类型分析
4、用户操作系统类型分析

 流量分析
1、地区流量分析
2、时段流量分析

 分析结果显示与导出
1、常规显示
2、HTML方式
3、Excel表格数据导出与显示

248月/1120

Memcache的使用与浅析

发布在 邵珠庆

[ 测试代码 ]
现在我们开始一段测试代码:

<?php
//连接
$mem = new Memcache;
$mem->connect("192.168.0.200", 12000);

//保存数据
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br>";

//替换数据
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br>";

//保存数组
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br>";

//删除数据
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br>";

//清除所有数据
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br>";

//关闭连接
$mem->close();
?>

如果正常的话,浏览器将输出:
Get key1 value: This is first value
Get key1 value: This is replace value
Get key2 value: Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd )
Get key1 value:
Get key2 value:

 

[ 程序分析 ]

初始化一个Memcache的对象:
$mem = new Memcache;

连接到我们的Memcache服务器端,第一个参数是服务器的IP地址,也可以是主机名,第二个参数是Memcache的开放的端口:
$mem->connect("192.168.0.200", 12000);

保存一个数据到Memcache服务器上,第一个参数是数据的key,用来定位一个数据,第二个参数是需要保存的数据内容,这里是一个字符串,第三 个参数是一个标记,一般设置为0或者MEMCACHE_COMPRESSED就行了,第四个参数是数据的有效期,就是说数据在这个时间内是有效的,如果过 去这个时间,那么会被Memcache服务器端清除掉这个数据,单位是秒,如果设置为0,则是永远有效,我们这里设置了60,就是一分钟有效时间:
$mem->set('key1', 'This is first value', 0, 60);

从Memcache服务器端获取一条数据,它只有一个参数,就是需要获取数据的key,我们这里是上一步设置的key1,现在获取这个数据后输出输出:
$val = $mem->get('key1');
echo "Get key1 value: " .
$val;

现在是使用replace方法来替换掉上面key1的值,replace方法的参数跟set是一样的,不过第一个参数key1是必须是要替换数据内容的key,最后输出了:
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val;

同样的,Memcache也是可以保存数组的,下面是在Memcache上面保存了一个数组,然后获取回来并输出
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
print_r($val2);

现在删除一个数据,使用delte接口,参数就是一个key,然后就能够把Memcache服务器这个key的数据删除,最后输出的时候没有结果
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val .
"<br>";

最后我们把所有的保存在Memcache服务器上的数据都清除,会发现数据都没有了,最后输出key2的数据为空,最后关闭连接
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo
"<br>";

 

【Memcache协议分析】

如果你不喜欢 php_memcache.dll 扩展或者服务器器目前不支持这个扩展,那么就可以考虑自己构建,需要构建Memcahe的客户端,要先了解Memcache协议的交互,这样才能开发自己的客户端,我这里就简单的分析以下Memcache的协议。
(更详细的协议内容请在Memcache服务器端的源码的 doc/protocol.txt 文件中,本文基本来源于此)

Memcache既支持TCP协议,也支持UDP协议,不过我们这里是以TCP协议的协议作为主要考虑对象,想了解UDP协议的过程,请参考 doc/protocol.txt 文件。

[ 错误指令]
Memcache的协议的错误部分主要是三个错误提示之提示指令:
普通错误信息,比如指令错误之类的
ERROR\r\n

客户端错误
CLIENT_ERROR <错误信息>\r\n

服务器端错误
SERVER_ERROR <错误信息>\r\n

[ 数据保存指令]
数据保存是基本的功能,就是客户端通过命令把数据返回过来,服务器端接收后进行处理。
指令格式:
<命令> <键> <标记> <有效期> <数据长度>\r\n

<命令> - command name
主要是三个储存数据的三个命令, set, add, replace
set 命令是保存一个叫做key的数据到服务器上
add 命令是添加一个数据到服务器,但是服务器必须这个key是不存在的,能够保证数据不会被覆盖
replace 命令是替换一个已经存在的数据,如果数据不存在,就是类似set功能

<键> - key
就是保存在服务器上唯一的一个表示符,必须是跟其他的key不冲突,否则会覆盖掉原来的数据,这个key是为了能够准确的存取一个数据项目

<标记> - flag
标记是一个16位的无符号整形数据,用来设置服务器端跟客户端一些交互的操作

<有效期> - expiration time
是数据在服务器上的有效期限,如果是0,则数据永远有效,单位是秒,Memcache服务器端会把一个数据的有效期设置为当前Unix时间+设置的有效时间

<数据长度> - bytes
数据的长度,block data 块数据的长度,一般在这个个长度结束以后下一行跟着block data数据内容,发送完数据以后,客户端一般等待服务器端的返回,服务器端的返回:

数据保存成功
STORED

数据保存失败,一般是因为服务器端这个数据key已经存在了
NOT_STORED

[ 数据提取命令]
从服务器端提取数据主要是使用get指令,格式是:
get <键>*

<键>* - key
key是是一个不为空的字符串组合,发送这个指令以后,等待服务器的返回。如果服务器端没有任何数据,则是返回:
END\r\n

证明没有不存在这个key,没有任何数据,如果存在数据,则返回指定格式:
VALUE <> <标记> <数据长度>\r\n
<数据块>

返回的数据是以VALUE开始的,后面跟着key和flags,以及数据长度,第二行跟着数据块。

<键> -key
是发送过来指令的key内容

<标记> - flags
是调用set指令保存数据时候的flags标记

<数据长度> - bytes
是保存数据时候定位的长度

<数据块> - data block
数据长度下一行就是提取的数据块内容

 

[ 数据删除指令]
数据删除指令也是比较简单的,使用get指令,格式是:
delete <键> <超时时间>

<键> - key
key是你希望在服务器上删除数据的key键

<超时时间> - timeout
按照秒为单位,这个是个可选项,如果你没有指定这个值,那么服务器上key数据将马上被删除,如果设置了这个值,那么数据将在超时时间后把数据清除,该项缺省值是0,就是马上被删除

删除数据后,服务器端会返回:
DELETED
删除数据成功
NOT_FOUND
这个key没有在服务器上找到

如果要删除所有服务器上的数据,可以使用flash_all指令,格式:
flush_all

这个指令执行后,服务器上所有缓存的数据都被删除,并且返回:
OK

这个指令一般不要轻易使,除非你却是想把所有数据都干掉,删除完以后可以无法恢复的。

[其他指令]
如果想了解当前Memcache服务器的状态和版本等信息,可以使用状态查询指令和版本查询指令。

如果想了解当前所有Memcache服务器运行的状态信息,可以使用stats指令,格式
stats
服务器将返回每行按照 STAT 开始的状态信息,包括20行,20项左右的信息,包括守护进程的pid、版本、保存的项目数量、内存占用、最大内存限制等等信息。

如果只是想获取部分项目的信息,可以指定参数,格式:
stats <参数>
这个指令将只返回指定参数的项目状态信息。

如果只是想单独了解当前版本信息,可以使用version指令,格式:
version
将返回以 VERSION 开头的版本信息

如果想结束当前连接,使用quit指令,格式:
quit

将断开当前连接

另外还有其他指令,包括incr, decr 等,我也不太了解作用,就不做介绍了,如果感兴趣,可以自己去研究。

 

【Memcache在中型网站的使用】

使用Memcache的网站一般流量都是比较大的,为了缓解数据库的压力,让Memcache作为一个缓存区域,把部分信息保存在内存中,在前端能 够迅速的进行存取。那么一般的焦点就是集中在如何分担数据库压力和进行分布式,毕竟单台Memcache的内存容量的有限的。我这里简单提出我的个人看 法,未经实践,权当参考。

[ 分布式应用]
Memcache本来支持分布式,我们客户端稍加改造,更好的支持。我们的key可以适当进行有规律的封装,比如以user为主的网站来说,每个用户都有 User ID,那么可以按照固定的ID来进行提取和存取,比如1开头的用户保存在第一台Memcache服务器上,以2开头的用户的数据保存在第二胎 Mecache服务器上,存取数据都先按照User ID来进行相应的转换和存取。

但是这个有缺点,就是需要对User ID进行判断,如果业务不一致,或者其他类型的应用,可能不是那么合适,那么可以根据自己的实际业务来进行考虑,或者去想更合适的方法。

[ 减少数据库压力]
这个算是比较重要的,所有的数据基本上都是保存在数据库当中的,每次频繁的存取数据库,导致数据库性能极具下降,无法同时服务更多的用户,比如 MySQL,特别频繁的锁表,那么让Memcache来分担数据库的压力吧。我们需要一种改动比较小,并且能够不会大规模改变前端的方式来进行改变目前的 架构。

我考虑的一种简单方法:
后端的数据库操作模块,把所有的Select操作提取出来(update/delete/insert不管),然后把对应的SQL进行相应的hash算法 计算得出一个hash数据key(比如MD5或者SHA),然后把这个key去Memcache中查找数据,如果这个数据不存在,说明还没写入到缓存中, 那么从数据库把数据提取出来,一个是数组类格式,然后把数据在set到Memcache中,key就是这个SQL的hash值,然后相应的设置一个失效时 间,比如一个小时,那么一个小时中的数据都是从缓存中提取的,有效减少数据库的压力。

缺点是数据不实时,当数据做了修改以后,无法实时到前端显示,并且还有可能对内存占用比较大,毕竟每次select出来的数据数量可能比较巨大,这个是需要考虑的因素。

上面只是我两点没有经过深思熟虑的简单想法,也许有用,那就最好了。

 

【Memcache的安全】

我们上面的Memcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险, 轻则数据泄露被其他无关人员查看,重则服务器被入侵,因为Mecache是以root权限运行的,况且里面可能存在一些我们未知的bug或者是缓冲区溢出 的情况,这些都是我们未知的,所以危险性是可以预见的。

为了安全起见,我做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。

[ 内网访问]
最好把两台服务器之间的访问是内网形态的,一般是Web服务器跟Memcache服务器之间。普遍的服务器都是有两块网卡,一块指向互联网,一块指向内 网,那么就让Web服务器通过内网的网卡来访问Memcache服务器,我们Memcache的服务器上启动的时候就监听内网的IP地址和端口,内网间的 访问能够有效阻止其他非法的访问。

# memcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid

Memcache服务器端设置监听通过内网的192.168.0.200的ip的11211端口,占用1024MB内存,并且允许最大1024个并发连接

[ 设置防火墙]
防火墙是简单有效的方式,如果却是两台服务器都是挂在网的,并且需要通过外网IP来访问Memcache的话,那么可以考虑使用防火墙或者代理程序来过滤非法访问。
一般我们在Linux下可以使用iptables或者FreeBSD下的ipfw来指定一些规则防止一些非法的访问,比如我们可以设置只允许我们的Web服务器来访问我们Memcache服务器,同时阻止其他的访问。

# iptables -F
# iptables -P INPUT DROP
# iptables -A INPUT -p tcp -s 192.168.0.2 --dport 11211 -j ACCEPT
# iptables -A INPUT -p udp -s 192.168.0.2 --dport 11211 -j ACCEPT

上面的iptables规则就是只允许192.168.0.2这台Web服务器对Memcache服务器的访问,能够有效的阻止一些非法访问,相应的也可以增加一些其他的规则来加强安全性,这个可以根据自己的需要来做。

248月/1110

海量数据的处理分析经验

发布在 邵珠庆

在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以下几个方面:

一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一 检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据 中,什么情况都可能存在,例如,数据中某处格式出了问题,尤其在程序处理时,前面还能正常处理,突然到了某个地方问题出现了,程序终止了。
二、软硬件要求高,系统资源占用率高。对海量的数据进行处理,除了好的方法,最重要的就 是合理使用工具,合理分配系统资源。一般情况,如果处理的数据过TB级,小型机是要考虑的,普通的机子如果有好的方法可以考虑,不过也必须加大CPU和内 存,就象面对着千军万马,光有勇气没有一兵一卒是很难取胜的。
三、要求很高的处理方法和技巧。这也是本文的写作目的所在,好的处理方法是一位工程师长期工作经验的积累,也是个人的经验的总结。没有通用的处理方法,但有通用的原理和规则。
那么处理海量数据有哪些经验和技巧呢,我把我所知道的罗列一下,以供大家参考:
一、选用优秀的数据库工具
现在的数据库工具厂家比较多,对海量数据的处理对所使用的数据库工具要求比较高,一般使 用Oracle或者DB2,微软公司最近发布的SQL Server 2005性能也不错。另外在BI领域:数据库,数据仓库,多维数据库,数据挖掘等相关工具也要进行选择,象好的ETL工具和好的OLAP工具都十分必要, 例如Informatic,Eassbase等。笔者在实际数据分析项目中,对每天6000万条的日志数据进行处理,使用SQL Server 2000需要花费6小时,而使用SQL Server 2005则只需要花费3小时。
二、编写优良的程序代码
处理数据离不开优秀的程序代码,尤其在进行复杂数据处理时,必须使用程序。好的程序代码对数据的处理至关重要,这不仅仅是数据处理准确度的问题,更是数据处理效率的问题。良好的程序代码应该包含好的算法,包含好的处理流程,包含好的效率,包含好的异常处理机制等。
三、对海量数据进行分区操作
对海量数据进行分区操作十分必要,例如针对按年份存取的数据,我们可以按年进行分区,不 同的数据库有不同的分区方式,不过处理机制大体相同。例如SQL Server的数据库分区是将不同的数据存于不同的文件组下,而不同的文件组存于不同的磁盘分区下,这样将数据分散开,减小磁盘I/O,减小了系统负荷, 而且还可以将日志,索引等放于不同的分区下。
四、建立广泛的索引
对海量的数据处理,对大表建立索引是必行的,建立索引要考虑到具体情况,例如针对大表的 分组、排序等字段,都要建立相应索引,一般还可以建立复合索引,对经常插入的表则建立索引时要小心,笔者在处理数据时,曾经在一个ETL流程中,当插入表 时,首先删除索引,然后插入完毕,建立索引,并实施聚合操作,聚合完成后,再次插入前还是删除索引,所以索引要用到好的时机,索引的填充因子和聚集、非聚 集索引都要考虑。
五、建立缓存机制
当数据量增加时,一般的处理工具都要考虑到缓存问题。缓存大小设置的好差也关系到数据处理的成败,例如,笔者在处理2亿条数据聚合操作时,缓存设置为100000条/Buffer,这对于这个级别的数据量是可行的。
六、加大虚拟内存
如果系统资源有限,内存提示不足,则可以靠增加虚拟内存来解决。笔者在实际项目中曾经遇 到针对18亿条的数据进行处理,内存为1GB,1个P4 2.4G的CPU,对这么大的数据量进行聚合操作是有问题的,提示内存不足,那么采用了加大虚拟内存的方法来解决,在6块磁盘分区上分别建立了6个 4096M的磁盘分区,用于虚拟内存,这样虚拟的内存则增加为 4096*6 + 1024 = 25600 M,解决了数据处理中的内存不足问题。
七、分批处理
海量数据处理难因为数据量大,那么解决海量数据处理难的问题其中一个技巧是减少数据量。 可以对海量数据分批处理,然后处理后的数据再进行合并操作,这样逐个击破,有利于小数据量的处理,不至于面对大数据量带来的问题,不过这种方法也要因时因 势进行,如果不允许拆分数据,还需要另想办法。不过一般的数据按天、按月、按年等存储的,都可以采用先分后合的方法,对数据进行分开处理。
八、使用临时表和中间表
数据量增加时,处理中要考虑提前汇总。这样做的目的是化整为零,大表变小表,分块处理完 成后,再利用一定的规则进行合并,处理过程中的临时表的使用和中间结果的保存都非常重要,如果对于超海量的数据,大表处理不了,只能拆分为多个小表。如果 处理过程中需要多步汇总操作,可按汇总步骤一步步来,不要一条语句完成,一口气吃掉一个胖子。
九、优化查询SQL语句
在对海量数据进行查询处理过程中,查询的SQL语句的性能对查询效率的影响是非常大的, 编写高效优良的SQL脚本和存储过程是数据库工作人员的职责,也是检验数据库工作人员水平的一个标准,在对SQL语句的编写过程中,例如减少关联,少用或 不用游标,设计好高效的数据库表结构等都十分必要。笔者在工作中试着对1亿行的数据使用游标,运行3个小时没有出结果,这是一定要改用程序处理了。
十、使用文本格式进行处理
对一般的数据处理可以使用数据库,如果对复杂的数据处理,必须借助程序,那么在程序操作 数据库和程序操作文本之间选择,是一定要选择程序操作文本的,原因为:程序操作文本速度快;对文本进行处理不容易出错;文本的存储不受限制等。例如一般的 海量的网络日志都是文本格式或者csv格式(文本格式),对它进行处理牵扯到数据清洗,是要利用程序进行处理的,而不建议导入数据库再做清洗。
十一、       定制强大的清洗规则和出错处理机制
海量数据中存在着不一致性,极有可能出现某处的瑕疵。例如,同样的数据中的时间字段,有的可能为非标准的时间,出现的原因可能为应用程序的错误,系统的错误等,这是在进行数据处理时,必须制定强大的数据清洗规则和出错处理机制。
十二、       建立视图或者物化视图
视图中的数据来源于基表,对海量数据的处理,可以将数据按一定的规则分散到各个基表中,查询或处理过程中可以基于视图进行,这样分散了磁盘I/O,正如10根绳子吊着一根柱子和一根吊着一根柱子的区别。
十三、       避免使用32位机子(极端情况)
目前的计算机很多都是32位的,那么编写的程序对内存的需要便受限制,而很多的海量数据处理是必须大量消耗内存的,这便要求更好性能的机子,其中对位数的限制也十分重要。
十四、       考虑操作系统问题
海量数据处理过程中,除了对数据库,处理程序等要求比较高以外,对操作系统的要求也放到了重要的位置,一般是必须使用服务器的,而且对系统的安全性和稳定性等要求也比较高。尤其对操作系统自身的缓存机制,临时空间的处理等问题都需要综合考虑。
十五、       使用数据仓库和多维数据库存储
数据量加大是一定要考虑OLAP的,传统的报表可能5、6个小时出来结果,而基于Cube的查询可能只需要几分钟,因此处理海量数据的利器是OLAP多维分析,即建立数据仓库,建立多维数据集,基于多维数据集进行报表展现和数据挖掘等。
十六、       使用采样数据,进行数据挖掘
基于海量数据的数据挖掘正在逐步兴起,面对着超海量的数据,一般的挖掘软件或算法往往采 用数据抽样的方式进行处理,这样的误差不会很高,大大提高了处理效率和处理的成功率。一般采样时要注意数据的完整性和,防止过大的偏差。笔者曾经对1亿2 千万行的表数据进行采样,抽取出400万行,经测试软件测试处理的误差为千分之五,客户可以接受。
还有一些方法,需要在不同的情况和场合下运用,例如使用代理键等操作,这样的好处是加快了聚合时间,因为对数值型的聚合比对字符型的聚合快得多。类似的情况需要针对不同的需求进行处理。
海量数据是发展趋势,对数据分析和挖掘也越来越重要,从海量数据中提取有用信息重要而紧迫,这便要求处理要准确,精度要高,而且处理时间要短,得到有价值信息要快,所以,对海量数据的研究很有前途,也很值得进行广泛深入的研究。
238月/115

收集的一些主流网站的GA代码

发布在 邵珠庆

豆瓣首页、豆瓣读书:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7019765-1']);
_gaq.push(['_addOrganic', 'baidu', 'word']);
_gaq.push(['_addOrganic', 'soso', 'w']);
_gaq.push(['_addOrganic', '3721', 'name']);
_gaq.push(['_addOrganic', 'yodao', 'q']);
_gaq.push(['_addOrganic', 'vnet', 'kw']);
_gaq.push(['_addOrganic', 'sogou', 'query']);
_gaq.push(['_addIgnoredOrganic', '豆瓣']);
_gaq.push(['_addIgnoredOrganic', 'douban']);
_gaq.push(['_addIgnoredOrganic', '豆瓣网']);
_gaq.push(['_addIgnoredOrganic', 'www.douban.com']);
_gaq.push(['_setDomainName', '.douban.com']);
_gaq.push(['_trackPageview']);
_gaq.push(['_setVar', '224']);

(function() {
    var ga = document.createElement('script');
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    ga.setAttribute('async', 'true');
    document.documentElement.firstChild.appendChild(ga);
})();
</script>

携程首页、国内机票:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
        var pageTracker = _gat._getTracker("UA-3748357-1");
        pageTracker._setDomainName("ctrip.com");
        pageTracker._addOrganic("soso", "w");
        pageTracker._addOrganic("sogou", "query");
        pageTracker._addOrganic("yodao", "q");
        pageTracker._initData();
        pageTracker._trackPageview();
} catch(e){;};
</script>

麦包包首页

<script type="text/javascript">

//ga
var _ga_username = '{if $globals.user_login}{$globals.user_info.username}{else}非会员{/if}';
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
google_analytics();
function google_analytics(){
try {
var pageTracker = _gat._getTracker("UA-10586344-1");
pageTracker._addOrganic("baidu","word");
pageTracker._addOrganic("soso","w");
pageTracker._addOrganic("3721","name");
pageTracker._addOrganic("yodao","q");
pageTracker._addOrganic("vnet","kw");
pageTracker._addOrganic("sogou","query");
pageTracker._addIgnoredOrganic("麦包包");
pageTracker._addIgnoredOrganic("mbaobao");
pageTracker._addIgnoredOrganic("www.mbaobao.com");
pageTracker._setVar((isset(_ga_username) ? _ga_username : '非会员'));
pageTracker._trackPageview();

$('#a_add_favorites').bind("click", function()
{
pageTracker._trackEvent("网站操作", "收藏网站");
});
} catch(err) {
setTimeout(function(){
google_analytics();
}, 1000);
}
}

</script>

敦煌网首页、商品详情页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-425001-1");
pageTracker._setDomainName(".dhgate.com");
pageTracker._setAllowHash("false");
pageTracker._trackPageview(location.pathname + location.search + escape(location.hash));
} catch(err) {}</script>

京东首页、商品详情页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2176661-1");
pageTracker._setDomainName("360buy.com");
pageTracker._addOrganic("soso", "w");
pageTracker._addOrganic("sogou", "query");
pageTracker._addOrganic("yodao", "q");
pageTracker._trackPageview();
</script>

走秀网首页、商品详情页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-9540643-1");
pageTracker._initData();
pageTracker._setDomainName(".zoshow.com");
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
</script>

篱笆网首页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5496041-1");
pageTracker._setDomainName("liba.com");
pageTracker._initData();
pageTracker._trackPageview();
</script>

篱笆网商品详情页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5496041-1");
pageTracker._setDomainName("liba.com");
pageTracker._initData();
pageTracker._trackPageview(location.pathname + decodeURI(location.search));
</script>

钻石小鸟:
<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-97277-13");
pageTracker._addOrganic("soso","w");
pageTracker._addOrganic("sogou","query");
pageTracker._addOrganic("youdao","lq");
pageTracker._initData();
pageTracker._setDomainName(".zbird.com");
pageTracker._trackPageview();
</script>

博客大巴首页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2120146-1");
pageTracker._initData();
pageTracker._trackPageview();
document.onclick = function(e) {
e = e || event;
var el = e.target || e.srcElement;
if (el.tagName=='A' && e.button == 0 && el.href.match("http:\/\/") && el.target=="_blank") {
pageTracker._trackPageview("\/ad/" + window.location.href.replace("http:\/\/www.blogbus.com/", "") + el.href.replace("http:\/\/", "\/"));
        }
}
</script>

博客大巴频道页、文章页、文章列表页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-1649222-2");
pageTracker._addOrganic("baidu","word");
pageTracker._addOrganic("baidu","wd");
pageTracker._addOrganic("soso","w");
pageTracker._addOrganic("vnet","kw");
pageTracker._initData();
pageTracker._trackPageview();
} catch(err) {}</script>

博客大巴注册、登录页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-2120146-17");
pageTracker._trackPageview();
} catch(err) {}</script>

博客大巴搜索列表页:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2120146-11");
pageTracker._trackPageview();

天极网:

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var _ga = _gat._getTracker("UA-11613621-1");
_ga._setDomainName(".yesky.com");
_ga._addOrganic("soso","w");
_ga._addOrganic("3721","name");
_ga._addOrganic("yodao","q");
_ga._addOrganic("vnet","kw");
_ga._addOrganic("sogou","query");
_ga._trackPageview();
} catch(err) {}</script>

酷讯网:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-4247795-5']);
  _gaq.push(['_setCustomVar','1','{$username}','{$cu_ip}','2']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga
.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

198月/1129

产品经理工资待遇/薪资水平互联网名企

发布在 邵珠庆

上海易趣产品经理:10000每月
去哪产品经理:6000每月
电信产品经理:3000每月
腾讯产品经理助理:6200每月
万网产品经理:6500每月
豆瓣网产品经理:6000每月
暴风影音产品经理:8000每月
华为产品经理:11300每月
芒果网产品经理:4320每月
百度产品经理实习:3000每月
长城电脑产品经理:9000每月
新浪无线产品经理:8300每月
同方股份产品经理:6300-10000区间,平均为8150元每月

空中网产品经理:5400-15000每月,平均为10200元每月
微软中国高级产品经理:25000元每月
UUSEE产品经理:10000元每月
易观国际产品经理:17000元每月
深圳万兴软件产品经理:6500元每月
酷6网产品经理:5000元每月
TOM在线产品经理:5000-5500元每月,平均为5158元每月
21CN产品经理:4500元每月
长虹产品经理:5000元每月
计算机世界产品经理:10000元每月
金蝶产品经理:7200元每月
紫光产品经理:16600元每月
12580产品经理:9000元每月
卓越产品经理:12000元每月
六间房产品经理:6000元每月
西门子产品经理:25300元每月
易宝支付产品经理:2400-7600,平均为5000元每月
GE产品经理:11500元每月
新浪产品经理:3000-14000元每月,平均为7500元每月
携程网产品经理助理:3900元每月
3G门户产品经理:6000元每月
淘宝高级产品经理:11420元每月
知网产品经理:19500元每月
赶集网产品经理:7000元每月
走秀网产品经理:7600元每月
中文在线产品经理:9000元每月
广东移动产品经理:5200元每月
金山产品经理:5000元每月
TCL产品经理:6000-16000元每月,平均为11000元每月
51高级产品经理:10000元每月
艾瑞咨询助理产品经理:7500元每月
海尔产品经理:7000-24000元每月,平均为16667元每月
中彩网产品经理:8300元每月
宝洁高级产品经理:15000元每月
CNTV产品经理:4400元每月+隐性福利
央视网产品经理:7000-8000每月,平均为7500每月
中华网产品经理:15000每月
360安全卫士产品经理:8000每月
腾讯高级产品经理:14000元每月
百度PM产品经理实习生:2900元每月

148月/114

马云的独门绝技:创业基因 价值观 深刻理解本土

发布在 邵珠庆

如何在一个成熟组织重启创业精神?

  这是一个难题,不妨看看张朝阳的解决方案,那就是拆分。不管是游戏公司遨游,还是发力搜索的搜狗,张朝阳都采取了类似的策略。他这么做的一个核心理由就是,身为一个成熟的、已经上市的公司,现有的公司精神跟创业公司的那种冒险精神产生了冲突。

  再看看陈天桥的解决方案,在公司外进行创业孵化,他推出“18基金项目,投资开发精品民族网游和相关项目。这个自2007年开始进行的大计划,似乎并没有取得巨大的效果,也并没有孵化出特别得力的网游产品,对陈天桥蓄谋已久的平台战略也没有多少加分。

  有创业教父之称的马云则采取了另外的策略,在内部进行创业孵化,有一些小的失败,比如阿里软件,但是效果却很明显,从淘宝到支付宝,不仅成长力惊人,更关键地是,这些创业公司互为依托,互相借力,形成了一个系统力强大的阿里巴巴平台级公司。

  马云有什么独到的武功秘诀?仔细梳理一下,马云有三大绝招:

  绝招1:创业基因——湖畔花园

  梳理马云及阿里巴巴的创业基因,湖畔花园应该是一个关键的地方,在这里诞生了阿里巴巴,也诞生了淘宝。所谓湖畔花园看起来并不美丽,不是一座别墅,也不是一处高级住宅,而是杭州西部一个普通的居民小区。确切的地址是湖畔花园风荷院161单元202小区中一座4层居民楼中的一套四居室的房子,面积有150平方米,这里本来是马云的新家,还未来得及住就被拿来当作阿里巴巴的办公地点。

  后来,在一次演讲中,马云特意强调了这种湖畔精神:

  记得1998年年底,在长城上,我们发誓:要创建让中国感到骄傲、让全世界感到骄傲的公司。我也想到了宝宝回杭州的时候,湖畔花园穷途四壁,我还记得那时候他电话给我,说因为没有空调,手很冷,然后到第一次融资,我们搬到华星。当时我第一次担心,怕阿里巴巴不是阿里巴巴。我怕我们失去了湖畔的精神。但是我们在华星,很好地保留了当时的文化。昨天我走回公司,发现了楼下一大排的出租车,这让我想起了在华星,每天晚上到一两点的时候,都有许多出 租车司机在外边等。所有的杭州司机都知道,阿里巴巴再晚还是有人在那工作。但是现在,我又开始担心了,创业大厦比华星更豪华,阿里巴巴会不会变化?我们的旗还能扛多远?

  湖畔花园也是马云创业精神的源头之一,它代表的关键词是:强调艰苦奋斗的精神,后来,阿里巴巴大多分公司都要先开在居民楼里,也是这种湖畔花园精神的延续。

  这种湖畔精神的另外一个关键词是一定要与众不同,真正的创业者一定要另眼看世界。马云自己就说:我给人家感觉怪怪的……但与众不同不是我做出 来的,而是我的本能。与众不同是创业者的必备气质,甚至,它要成为创业者的本能。只有以与众不同的视角看世界,你才能发现全新的商业机会。

  马云认为人一辈子都在创业,他甚至反对二次创业的说法,同一批领导是没有办法二次创业的,因为从第一天创业你就一直在创业。怎么样创业?

  马云强调的湖畔精神的第三个关键词是小公司精神。即使在阿里巴巴上市后,马云仍把阿里巴巴定位为一家小公司,但是具有大的社会影响力。这种小公司定位的背后,是一种追求速度、灵活、创新的精神。

  关于这种小公司精神,马云在内部专门强调过:我的定位是,我们是一家高速发展的小公司,但是具有很强的社会影响力。首先要明白我们是小公司, 发展速度非常之快,如果将自己定位为跨国公司,定位为非常厉害的公司,我们真的是越走越狭窄。人要明白自己是谁,什么原因让你成功,阿里巴巴有现在,首先 要感谢有互联网这个行业,没有互联网这个行业,我们不可能有颠覆性的思考,行业的高速成长有了我们,我们要感谢中国经济的高速成长,特别感谢的是我的团队。

绝招2:价值观为何仇恨”MBA

马云一直颇为仇恨”MBA,为什么?
马云曾说过把80%MBA开除了。要么送回去继续学习,要么到别的公司去,我告诉他们应先学会做人,什么时候你忘了书本上的东西再回来吧。如果你认为你是MBA就可以管理人,就可以说三道四,那就错了,所有的MBA进入我们公司以后先从销售做起,六个月之后还能活下来,我们团队就欢迎你。
可能因为一开始创业就遭受了招MBA带来的教训,马云一直对MBA意见颇多。有一次,马云甚至向商学院发飙,他说,教授总是认为自己是最好的,但是我觉得商学院的客户是谁?是我们的这些企业、这些用人单位,企业的声音要听。
马云对MBA有一个比喻,可能是拖拉机里装了波音747的引擎,把拖拉机拆了还跑不起来。我希望调整MBA自己的期望值,MBA自认为是精英,精英在一起干不了什么事情,我跟MBA坐在一起,他们能用一年的时间讨论谁当CEO,而不是谁去做事。
马云反MBA言论的背后,是他认为这些MBA“做人有问题。
换句话说,马云一直强调一种创业型的价值观,而MBA跟这种创业型价值观格格不入。
哈佛商学院教授克莱顿克里斯滕森说:影响一家公司能做什么、不能做什么的一个重要因素,是它的价值观。我们将组织的价值观定义为员工用于确定优先事项的 标准他们根据这些标准来判断一份订单是否有吸引力,一位客户的重要性如何,以及一个新产品的创意是令人瞩目还是马马虎虎。
很少有中国企业像马云这么重视价值观修炼,这是一种大公司精神,是一种基业长青精神。事实上,马云在价值观上不断进行修订,以前是九大价值观,后来又精简为为六大价值观。对马云的价值观,网络上有一个广为流传的点评,阿里巴巴的价值观叫六脉神剑。三剑说做人:诚信、激情和敬业;二剑说做事:团队合作、拥抱变化;一剑刺中要害,说的是客户第一’”
比如,在早期的阿里巴巴,倒立只是一种独特的娱乐方式,后来,马云下了死命令,将倒立当作政治任务在内部推行,每一个员工,不管男女都必须学会。关于此,马云有三个层面的考虑:
1.
你以为自己做不到,其实你一定能做到。马云认为,只要克服心理障碍,一定就能实现。瘦弱的员工说,细小的胳膊实在支撑不起庞大的身躯。马云说,倒立就是最好的锻炼。
2.
你一个人做不到,在有人帮助的情况下,就一定能做到,这就是团队合作。
3.
马云把倒立赋予了换个角度思考的文化意义,每个人都要学会倒立,因为当你倒立起来,血液涌进大脑,看世界的角度和平时完全不一样,想问题,也就能找到一个不可思议的角度。
倒立是打破条条框框的一种手段,为了在内部强调这种打破常规的文化,马云可谓不遗余力。
2001
年,马云把四个同事送回了MBA,一个去了哈佛,三个去了沃顿商学院。马云看他们时专门说:你回来时告诉我忘了MBA教的一切,你毕业了,如果 还是条条框框,你没有毕业,继续回去学。MBA学了两年以后,还要起码花半年时间去忘掉MBA学习的东西,那才真正成功了。

   下一页