11 月 12
Luke Fan未分类
关于图片
我住在全季酒店(汉庭的连锁品牌),房间一角,摆着一套有点儿感觉的茶具。虽然从里到外透漏着屌丝气息,但是放了一点儿小摆件儿,就收了我好多钱。
偶然触发
今天听到有人讲,作为一个记者,约谈了140个项目之后,对项目进行了一种系统化的分类。每次遇到一个项目,就会用一套分类方法进行嵌套。
思维定势的矛与盾
这就是思维定势,我们在做了一段时间某种工作之后,总会形成各种各样的思维定势,这些思维定势,通常能够帮助我们快速的解决很多问题。但是当一些新事物发生的时候,我们也会被思维定势所误导,放弃对事物完整可能性的思考,从而丧失获得正确结果的机会。
寻找小应用出海方向的思维定势
闲话少说,前几天有人问我应该如何为移动应用出海找方向,于是我的思维定势起作用了。我给出了三个层次的答案,让他自己思考和选择。
没有热爱,只是为了完成任务,领薪水。也没有做市场调研和思考,只是根据家里剩下的菜,就决定今天晚上吃什么。
进行完善的市场分析,寻找用户有需要的市场,从而进行方向的选择。这个过程中依然没有热爱,仅仅是冷静的市场分析。
市场分析的时候,需要考虑的问题,有三个步骤。
- 看排行榜以及各种公开和非公开数据,进行冷静的数据分析。在这个过程中,需要摒除个人的主观意愿。在进行数据观察的时候,我们通常是在管中窥豹。获得完整、准确的数据,基本是不可能的,所以会有大量的判断是建立在很少的数据,以及很多的经验判断和猜测的基础上,在这个过程中,很容易受到主观意愿的影响。所以在做数据分析的时候,一定要时刻提醒自己,反复的从正反两个方向去寻找数据来进行论证和思考。
- 分析行业大佬的服务边界,以及边界上不是非常完善的地方。围绕行业大佬,在大佬们的非核心方向上,那些服务不是很完善的地方,用户抱怨比较多的地方,寻找方向。判断巨头的核心发展方向在这个过程中非常重要,站在大佬巨头的前面螳臂当车,是一种完全的自杀行为。海外的巨头,动作通常比较缓慢,特别是方向调整上,不会像国内那么快。而且,他们的方向在一个具体的时间段中通常比较集中,那些在战略方向之外的东西,很少有精力顾及的。国内则正好相反,巨头的方向调整如灵犀挂角,完全无迹可循,而且变化非常快。人力资源丰富,各种战略方向之外的东西,也都有人惦记着填补或改进,所以如果在国内希望在大佬身边捞口饭吃,那是一件非常危险的事情。
- 分析国内外有趣的方向,在这些方向已经验证成功的国家之外的其他国家进行尝试。如果说互联网里面有什么门槛是最难以逾越的话,那就是时间了。在某一个特定的时间点上,不论是时势造英雄,还是英雄造时势,总之英雄在一个特定的时间点产生了,那么这个方向上的机会也就被用掉了。其他人想再在同一个方向上超越,通常只有两种可能:领先者犯错误;追赶者投入千万倍的资金和资源,总之是非常困难的。所以,通常每一个方向上的成功机会只有一次。上面那个假设的成立,是有一个前提的,那就是在单一市场中,通常每一个方向上的成功机会只有一次。全球化之后,问题就发生了改变,全球市场并不是一个单一的市场,而是以国家为单位的多个封闭市场。那么前面那个假设就变成了,每一个方向上成功的机会,在每个国家都有一次。当然,其他国家成功的方向在运用的时候,还需要根据本地的情况进行调整和适应,也并不是每一个在他国成功的方向,在本国都适用。
- 远离中国人扎堆儿的地方。国人:聪明、勤奋、不服输、对于各种规则缺乏敬畏之心。国人创业,出海赚外国人的钱,靠的就是上面那些民族特性,希望躲避在国内一堆聪明人扎堆儿竞争。但是有些细分领域,已经被大量国人占据了,那么一脑袋扎进去,和在国内又有什么差异呢?所以,出海的目的是躲开和国人的竞争。所以,请珍爱生命,远离老乡。
真正从自我的意愿出发选择方向是最好的方式。不会做的,可以学,市场上现在需求不够大的,可以等。为了心中的爱,一切艰难险阻,都是可以克服的。现在,互联网云时代,社会对于创新给予了极大的包容,使得试错成本极大的降低,在这种情况下,为什么不挑一个自己喜欢的方向来做呢?方向是不是符合市场需求,团队是不是有完成心愿的能力,就让我们这些投资人来判断就好了。
很多还算聪明的人,选择了冷静的市场分析,这其实是很可惜的,他们在做毫无激情的事情,即使能够获得短暂的成功,由于一开始就缺乏正确的坚定的愿景,在遇到各种困难的时候,或者难以取舍的时候,就缺乏坚持下去的决心和最终判断的依据。
结论
我将上面那一大堆东西讲给了提问题的人。他好像是受到了一些启发,至少他自己应该是这样感觉的。大家仔细看看会发现,上面那一堆是满满的套路,还有一点点鸡汤。我每次出去给人讲东西之前,都会强调,每个人只能听到他想听到的,相信他想相信的。如果我讲过之后,他觉得有道理,那么肯定是他原来就是这么想的,而不是我讲得好,给他带来了新的思路。
正确运用思维定势的方法
思维定势是有价值,上面我总结出来的寻找出海方向的思维定势,也是有价值的。如果仅仅是停留在第一个层次,还是放弃吧。如果进入第二个层次,那么我提供了四个思考的步骤,很多人在这里做了很多思考,应该还有很多其他方法,这就有待他人补充了。如果能够进入第三个层次,当然更好,创始人通常是“热爱”是可以克服绝大部分问题和困难、抵御各种诱惑和困扰的。如果进入了第三个层次,还能认真的进行市场和数据的分析,在激情中保持理性,那是最完美的方式,不过这种团队是可遇而不可求的。
在理解了思维定势之后,还要尝试打破思维定势,尝试在这之外再去进行思考,如果满足于现有的思维定势,得到正确答案的几率就会下降。
3 月 26
Luke Fan未分类 cassandra, ruby, ubuntu
看到很多大牌网站,都离开MySQL转移到Cassandra上了。于是决定自己也试试。
在ubuntu服务器上先安装ruby on rails和java环境:
sudo apt-get install ruby ri irb rdoc ruby-dev rake rubygems1.8 libsqlite3-ruby libopenssl-ruby
sudo gem install rails mongrel mongrel_cluster -n /usr/bin
sudo apt-get install sun-java6-jdk ant
然后安装ruby的cassandra gem包。
sudo gem install cassandra -n /usr/bin
直到这里,都不需要怎么麻烦。
下一步是下载、编译、安装cassandra,这个就麻烦了。
命令很简单:
cassandra_helper cassandra
第一个遇到的错误,说cassandra的包找不到了。于是上网去查了一下,发现是cassandra的版本更新了,原来是beta2,现在是beta3了。
修改Rakefile:
sudo vi /var/lib/gems/1.8/gems/cassandra-0.8.0/Rakefile
将其中的网址改为新的,正确的网址。
重新执行,总说找不到tar包或找不到目录。
后来发现,必须到cassandra默认的目录下去执行:
cd ~/cassandra
这回文件是找到了,却又说一个目录权限不够,再将执行的语句换成: sudo cassandra_helper cassandra ,在经过了漫长的ant编译过程(需要从网上下载不少东西)之后,终于运行起来了。而且,是以debug的方式运行起来的,对其做的各种操作都可以直观的看到。
启动的过程,会显示:
DEBUG – Estimating compactions for LocationInfo
DEBUG – Estimating compactions for HintsColumnFamily
DEBUG – Estimating compactions for Comments
DEBUG – Estimating compactions for Blogs
DEBUG – Estimating compactions for InvoiceRelationships
DEBUG – Estimating compactions for Customers
DEBUG – Estimating compactions for Appointments
DEBUG – Estimating compactions for Invoices
DEBUG – Estimating compactions for CustomersByLastName
DEBUG – Estimating compactions for InvoicesByNumber
DEBUG – Estimating compactions for Payments
DEBUG – Estimating compactions for CustomerRelationships
DEBUG – Estimating compactions for Comments
DEBUG – Estimating compactions for Blogs
DEBUG – Estimating compactions for Users
DEBUG – Estimating compactions for Index
DEBUG – Estimating compactions for UserRelationships
DEBUG – Estimating compactions for StatusAudits
DEBUG – Estimating compactions for StatusRelationships
DEBUG – Estimating compactions for Statuses
DEBUG – Estimating compactions for UserAudits
DEBUG – Estimating compactions for Usernames
上面写的这些名字,比如Users、Blogs,我们可以把他们直观的理解为表的名字。这些都是默认建好的,可以直接使用。
需要建立自己的表时,可以自己到cassandra_home/conf/storage-conf.xml里面去添加。
现在说起来比较简单,但当时反复试验,非常麻烦。
进入irb,然后键入代码:
#添加引用:
require ‘rubygems’
require ‘cassandra’
include Cassandra::Constants
#建立示例
twitter = Cassandra.new(‘Twitter’)
#填充数据
user = {‘screen_name’ => ‘buttonscat’}
twitter.insert(:Users, ‘5’, user)
tweet1 = {‘text’ => ‘Nom nom nom nom nom.’, ‘user_id’ => ‘5’}
twitter.insert(:Statuses, ‘1’, tweet1)
tweet2 = {‘text’ => ‘@evan Zzzz….’, ‘user_id’ => ‘5’, ‘reply_to_id’ => ‘8’}
twitter.insert(:Statuses, ‘2’, tweet2)
twitter.insert(:UserRelationships, ‘5’, {‘user_timeline’ => {UUID.new => ‘1’}})
twitter.insert(:UserRelationships, ‘5’, {‘user_timeline’ => {UUID.new => ‘2’}})
#检索查询
timeline = twitter.get(:UserRelationships, ‘5’, ‘user_timeline’, :reversed => true)
timeline.map { |time, id| twitter.get(:Statuses, id, ‘text’) }
得到结果:
[“@evan Zzzz….”, “Nom nom nom nom nom.”]
退出irb再重新进入,将查询的部分执行一次,没有问题。结果还是正确的。
现在还有一些问题没有解决,那就是,直接运行cassandra还有问题,应该是classpath配置的有问题。这应该是java配置的问题的。每次都必须要执行cassandra_helper cassandra,通过ruby来启动cassandra。还没搞清楚怎么设置开机自动启动。
现在cassandra_helper还无法检测我已经安装过canssandra了,每次都要去下载。我将里面判断的CASSANDRA_INCLUDE设置项,写到了 /etc/environment,好像也还是无效。
到此为止,还不能说是部署完全成功了,只是能够应付一些简单的开发测试工作。
cassandra本身在windwos下安装倒是非常简单:下载,解压,执行cassandra.bat完事。但是,在windows下面安装cassandra的ruby包很麻烦,必须要有nmake,我是在是不想再在机器上装vc了。Mac上面没试过,据说并不复杂。
再接再厉。