Posts archived in Web

2 comments

小强创业者

(标题党)

时代周刊最新一期有篇文章叫做<Get Rich Slow> , 讲了在经济逆向的情况下, 新的互联网创业者的一些新动向. 虽然其中的观点有待时间的检验, 但是建议各位对创业有兴趣的不妨一读.

这篇文章主要的思想就是, 在经济不景气风投不出手的情况下, 一个互联网公司要成为小强型选手, 就算没有风投创始人天天吃方便面, 公司也能捱过冬天. 显然, 这种模式转变, 是经济衰退的时候的必然: 风投没钱给创业者烧了, 创业者只能通过小规模低成本的扩张, 稳定的经营来保持不败. 而在经济衰退的时候, 能这样慢慢前进, 就已经是非常好的经营模式了, 这个是文章的标题 Get Rich Slow (慢慢变富)所蕴含的.

自然的, Paul Graham 大叔是做天使的, 要为天使说话. 比如说, 原来的商业计划招风投有两大缺陷, 一是创始人股份最后被稀释啊, 二是商业计划其实和最后结果一点联系都没有啊, 其实就是 Paul 大叔在为天使做宣传呢 :) 不过 Paul 大叔的天使真的是作出了品牌, 愣是把 Y Combinator 做成了天使里的红杉, 哪家公司被 YC 投了之后都要在主页上大张旗鼓宣传几天, 这种情况和以前传统意义上的天使是不大一样的. 天使嘛, 自然偏好烧钱不多, 前景广阔的小项目, 正好经济危机来了, 自动把不是小强的给筛选掉了, 剩下的 Paul 大叔只要投中一两个, 立即发家致富, 当然高兴了.

其实, 文章中间提到的创业者的实践, 早在经济衰退之前, 就有很多了. 如果细读 Founders At Work, 和我认识的一些创业者的一些成功的经验, 成功的都不是偶然的, 其实都是小强(可能就除了YouTube有点运气, 但是当时 YouTube 也是很小强的, PV 直逼Yahoo!了). 做小强, 环境是脏乱差了点, 可是小强啥环境都能生存. 等恶劣的环境把不是小强的全自动淘汰之后, 小强就是慢慢变富慢慢变老的那个浪漫故事的主角了.

文章链接: http://www.time.com/time/magazine/article/0,9171,1890387-1,00.html

3 comments

恭喜银杏

老霍 告诉我, 银杏泰克拿了一个”2008年中国互联网最具潜力项目奖“.

老霍, tiny, yusheng, 还有戴总, 叶总, 张总, 陈MM 以及几个我至今也记不全名字的业务部门的大哥, 恭喜你们.

我用苹果 Mac OS X 两年了, 越用越觉得, 其他操作系统要从苹果的 Mac OS X 上学习很多东西. 特别是图形界面的统一的脚本化接口, 我认为这对未来的操作系统是一个很好的启示, 也是完全用命令行工作哲学在图形界面时代的一个不可缺少的部分.

起因是最近我在写一系列的中文文章, 因为几乎没有数学公式, 而我又喜欢纯文本的工作方式, 因此在排版上我选择了reStructuredText. 一般来说, 英文文本我都是直接在 vim 下工作. 可是苹果下的 vim 对中文的支持不是想像的那么好, 至少中文输入法打出来的常常有乱码. 名动天下的 TextMate 固然好, 显示中文却只有半个字那么宽, 看上去很不舒服. 其他的编辑器要么收费, 要么嫌大, 要么不顺手, 因此落到最后还是用了苹果的 TextEdit.

但是写技术文章的人都知道, 写文章不仅是打字这么简单. 特别是技术文章, 常常需要离开编辑环境跑脚本, 查Google, 看 wiki. (我不知道别人是不是这样, 至少我为了写出质量较好的文章, 写的时候也要做很多功课). 特别是因为我在用 reStructuredText, 一个最基本的需求就是处理当前文本生成 HTML/LaTeX 然后预览. 这些需求, 在 VIM 和 TextMate 中都是原生支持的, 很简单能做到. 但是在 TextEdit 这样的软件中, 乍一看, 毫无办法. 所幸的是, UNIX 家族的操作系统, 特别是苹果, 秉承了 简单的事情要有简单的解法, 复杂的事情要有可能的解法 这样的设计思路, 提供了不止一条解决问题的方法. 因为苹果设计了一个叫做”脚本化应用程序”的东西, 使得这些任务可以很简单的完成. 我研究了几天, 学到了一些东西, 拿出来和大家分享.

1. 最常常被忽略的菜单栏, Service 菜单.

用具体的例子来说可能更加简单. 用 Gmail 的各位都知道, 如果邮件里面有 90081243455 这样的数字串, 或者有 北京是西城区XX路YY号 这样的地址, Gmail 就很贴心的显示出 “使用 Google 追踪快递包裹” 或者 “使用地图查看地址” 这样的链接. 也就是说, Gmail 会识别出这些特定的样式, 然后给你一个上下文相关的(也就是说, 和你内容相关的) 服务. 这样的服务贴心舒适, 相信不少人都很喜欢. 一般我们把这个叫做上下文相关的服务.

再说 Firefox. 前不久 Firefox 出了一个很贴心的小插件, 叫做 Ubiquity, 我在 Firefox 下几乎离不开它: 选中任何一行地址, 只需要敲几个键, 就可以查 Google Map. 选中任何一个名词, 可以立即查 Wikipedia, 等等. 一般我们把也把这个叫做基于选定的服务.

苹果上的 Service 菜单, 就是这样的一个基于上下文相关和基于选定的服务. 举个最简单的例子, 如果你的机器上装有 Skype, 然后你选中了一串电话号码, 这时候你可以到 Service 菜单中选择 Skype -> Call this number. Skype 就会自动拨打这个电话. 或者选中一个单词, Service 菜单中就会自动出现: Look up in the Dictionary. 选中它以后, 你机器上的字典就会跳出来, 把单词的释义呈现给你. 所有的这一切, 都是基于苹果的一个叫做 System Service 的框架. 简单的说, 每个应用程序告诉系统: 在什么情况下, 你给我什么信息, 就可以让我做什么事情. 这样, 在选定的上下文符合条件的时候, 你就可以在菜单中选择这个服务. 这个东西方便无比. 比如说, 常常老板在邮件里面写: 你这周做啥啥. 我就可以选中整行句子, 按下 ⇧⌘ Y. 这样整行句子就被纪录到 Stickies 里面去了, 相当于随时写下一个便签.

现有的菜单栏固然好, 但是自己编写的更加好玩. 所幸的是, 你不需要会苹果的生涩的 Obj-C 才能编写菜单. 有一个强大的工具, 叫做 ThisService, 能够把 Ruby, Python, Applescript 和 shell 脚本都包装成 Services. 比如说我昨天就花了一分钟写了一个很简单的叫做 Translate 的脚本, 通过 Python 提交文本给 Google Translate, 返回中文. 在阅读有很多不认识的单词的新闻文章时候, 只要选中段落, 选择这个 Translate. 一个翻译成中文的窗口就出现了. 在这个软件的帮助下, 任何脚本都能点一下鼠标就变成一个服务: 具体我就不一一详述了.

总的来说, 我们可以注意到, 在日常使用计算机的时候, 一个应用程序中的一些内容(文本或者图像), 往往要作为另外一个程序的输入, 交给另外一个程序处理. 比如选中的单词查字典, 选中的地址查阅地图, 和选中的电话号码拨打, 选中的句子翻译等等, 这些需求都是存在的. Windows 家族解决问题的方法, 是通过程序切换和剪切板. 而苹果就是通过统一的接口来完成的, 思想和UNIX管道是非常相似一脉相承的 (当然, windows 家族从来就没有 UNIX 家族管道这个思想, 所以也就想不出统一接口这样的设计了).

在苹果下, 统一脚本接口可以用来处理像 Service 这样的程序之间通信的问题, 这个是 windows 家族从来没有想过的. 同时, 据我个人经验, 这个思想在 Linux/X11 家族也没有全部实现. 在 Linux 命令行下, 我们都知道, 不同的小工具之间是正交的, 一个程序的输出是一个程序的输入, 这个 UNIX 哲学长盛不衰. 直到今天, 正常的 Linux/UNIX 用户也会天天用管道做程序之间的通信. 可是在图形界面出现后, 这样的好传统在 X11 系统中似乎没有被继承. 比如, 不能选中一段文字直接送给 wc 计算字数. 究其原因, 是因为图形界面再也没有明显的输入输出这个概念了. 字符串和图像变成了要在程序之间传送的基本单位. 在这种情况下, 就需要不仅仅以文件为基本单位, 而是以被选中的那些字符串, 句子, 链接, 图片等为基本单位的通信. 在这个层面上, 苹果的确先行一步. (当然 Emacs VIM 等等也是可以通信和调用外部程序的, 但是毕竟不是整个系统都能这样).

2. 史上最简单的语言, AppleScript.

故老相传, 当年 Knuth 大神访问苹果, 总裁 乔布斯 同学发挥爱吹牛的光荣传统, 说: 高教授, 您来了. 我特别崇拜你, 您的书我都读过. 各位读者都知道, 要是Jobs 真的把高教授的书都读过, 全世界大学计算机系99%的教授基本上都要自杀让位给Jobs. 所以, 高爷子知道他吹牛皮. 以下的故事分两个版本, 第一个版本是硅谷的版本, 是高爷子当即就说: 斯蒂夫同学, 你又扯淡忽悠了. 第二个版本是我的版本: 说高爷子一听, 也不生气, 心想, 你我共同作为硅谷两个最懂字体设计的搞IT的, 我也不好得罪你, 且问你一道简单的问题, 看你读了我哪几本书. 于是高爷子眼珠一转, 题上心来, 问到: 乔布斯同学, 请问世界上最简单的编程语言是啥子呢? 乔布斯是个不懂技术的主. 想起当年和 Woz 合作的时候搞的东西叫做 BASIC, 听名字就觉得简单, 于是说道: 乃是 BASIC. 高爷爷说, 还有比这个更简单的么. (话说高爷爷心想, 我手里握着 TeX, Metafont, MIX, Literate Programming, CWEB 等几张王牌, 我就不信你说不出一个搭不上边的). 乔布斯同学哪能体会到高爷爷的良苦用心, 他又不会编程, 于是就杜撰到: 我们公司最近正在开发世界上最简单的一个语言: 叫做苹果脚本(AppleScript). 高爷爷一听就知道又是吹牛, 于是立即回复: 斯蒂夫, 你又扯淡忽悠了. 斯蒂夫同学哪服软, 于是要求开发部门开发一个连他都懂怎么用的语言. 于是 AppleScript 就被捣鼓出来了.
(以上故事纯属扯淡忽悠)

话说AppleScript 有多简单呢? 就和说话一样简单. 我曾经也写过介绍. 再这里再给一个例子:


tell application "TextEdit"
set filename to name of document 1
print filename
end tell

看, 明明就是英语嘛! 这么平铺直叙几乎没有语法的编程语言, 真的是世界上最简单的编程语言唉.

别看这个语言简单, 威力可不小. Mac 上几乎所有的应用程序, 都能够用这个语言去控制, 特别是 iTunes 甚至还有一个专门的网站, 专门就让你下载千奇百怪的控制脚本.

Applescript 还有两个好处: 1. 他是苹果原生支持的, 可以直接编译成苹果的应用程序来用. 因此, 简单的任务处理都可以用这个语言. 比如我们上面说的做成 Service 的, 也可以用 Applescript 来实现. 2. 他能够和其他应用程序交互. 其实在苹果系统中, 在脚本桥技术(Script Bridging) 出现之后, 理论上C/Javascript/Python/Ruby 都是可以和应用程序交互的. 可是AppleScript 的支持更加好, 更加直接. 比如取当前播放的iTunes乐曲名字, 可以用
AppleScript:

tell application "iTunes" to get the name of the current track

也可以用 Python

from Foundation import *
from ScriptingBridge import *
iTunes = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")
print iTunes.currentTrack().name()

显然 Python 要显得笨重一些.

同时, AppleScript 也是苹果中小机器人 Otto 的底层技术, 因此在整个系统中发挥了基础性的作用. 虽然学习 AppleScript 显得很偏很不入流, 但是在苹果上做一些小任务有时候还是用得着的. 比如说我的让 TextEdit 支持 ⇧⌘ R 自动编译的例子, 就是先写了一串脚本, 取当前文件名, 然后使用 do shell script 这个指令调用 make. 这样, 调用这个脚本, 就可以完成自动编译. 用快捷键来调用脚本, 有两种方式, 一种是通过把脚本拷贝到应用程序的脚本目录并且添加一个菜单项. 另一种是用 QuickSilver 来帮忙了. 第一种方法应该最简单, 但是我没有尝试成功, 有兴趣的读者可以读这篇文章.

3. QuickSilver

我曾经间或的提到过 QuickSilver. 刚开始我并不能体会到他的魔力, 直到最近在玩脚本控制的时候才发现. 简单的说, QuickSilver 就是能让你用键盘控制程序的程序. 或者说, QuickSilver 就是键盘命令中枢. 比如说播放音乐, 只要一键激活 QuickSilver, 再打一下 play (有时都不要打全), 回车. iTunes 就放起音乐了. 上面我们说的任何控制系统的脚本, 都能够被 QuickSilver 控制. 我在拔掉你的鼠标一文中也提到, “你要是苹果用户又不用QuickSilver或命令行, 那你是把苹果当Windows用”.

QuickSilver 作为应用程序快速启动的功能大家想必都很熟悉. 控制 iTunes 大家也得心应手. 我就介绍一个被大家忽略的功能: 设置上下文相关的快捷键. 传统上, 快捷键是被应用程序定死的. 即使你写了一个扩展应用程序的脚本, 你也得点点鼠标去调用, 而不能设置键盘快捷键去调用. 解决的方法有三个, 第一个是我在第一部分讲的, 包装成一个 Service. 这样的好处是可以包装出一个快捷键, 坏处是这个Service 是全局都有用的, 不管你在哪个应用程序里面, 这个 service 都能用. 第二种是我在第二部分提到的我没有尝试成功的, 即添加一个菜单项目的方法. 第三个就是采用 QuickSilver 的 Trigger 功能了. QS 用户可以使用 ⌘’ 调出 trigger, 然后添加一个 Custom Trigger, 把目标指向自己写好的一个 AppleScript, 给这个 trigger 分配一个快捷键, 并且把使用的范围 scope 限定在一些应用程序中. 这样, 不费任何功夫, 只写一个简单的脚本, 您就可以在你的计算机上把你的 TextEdit 也改造成一个功能强大的编辑器了.

结语: 如我在拔掉你的鼠标一文中说的, 完全使用键盘能强迫人使用高效简洁和正确的工具. 随着图形界面和多媒体的出现, 鼠标的反而成了一个最常见的动作. 其实认真分析鼠标点选操作就发现, 无非是两种: 一种是用鼠标选择内容, 准备用一定的工具和程序处理这个内容, 还有一种是鼠标选择操作. 前者对内容的选择, 鼠标是高效的. 而后者对操作的选择, 鼠标是低效的 (因为键盘快捷键和命令行更加高效). 因此, 如果我们想要高效的工作, 就要避免后一种操作, 并且进一步解放前者.

对后一种的避免很简单: 拔掉鼠标, 强迫用键盘. 对前者的解放, 随着各种各样如 Service, Ubiquity 以及上下文敏感程序的兴起, 使得我们不需要在不同的程序之间拷贝来拷贝去, 而是直接通过程序之间的标准接口通信, 使得我们甚至不需要切换程序. 所有的都应该这些基于命令行和后台来完成, 而不是通过分散注意力切换程序来完成. 这些新的工具, 更加符合一个高效能的现代人的需求, 更加能够提升你的效率. 当然, 决定做事的效率的不仅仅是工具, 因此, 不要迷恋这些工具. 为了获得 1% 效率的提升, 而过于强调工具的各种淫巧, 反而降低效率. (警告: 这些工具都是非常迷人的, 很容易一用就爱上它们. 记住, 效率是最好的判断标准 :).

附 “完全用命令行工作系列” 文章一共五篇, 写了也不少了, 有些工具我一笔带过, 有些我花了几句话讲了一下. 基本上我介绍到的提到的, 都是我自己天天用的, 也是我认为非常有用的. 我写作的时候也都是带着 “Smart and Get Things Done” 的哲学, 只介绍干净的设计良好的软件. 各位想实践 GTD 的读者可以自行选择趁手工具. 有更多的 GTD 的完全用 键盘/命令行 工作的软件, 也不妨向我推荐.

完全用命令行工作-3: 常用工具

完全用命令行工作-2: 常用软件

完全用命令行工作-1: 拔掉你的鼠标

完全用命令行工作: 几条趁手语句

我以前写过一篇<网络沟通的基本礼仪>, 主要是针对及时通讯软件和电子邮件的.  今天说说博客留言的一些基本礼仪. 写博客也差不多一年多了, 期间见到各种各样的留言, 有些当时就删除了. 昨天有一个读者, 锲而不舍在我博客上贴了22篇留言, 被我全部删除. 大家都知道王晓峰的博客上, 评论者被称为黑猩猩(长的人样, 没人的思维). 有些知名博客也关闭了评论. 这都是博客的评论的不受作者欢迎造成的. 鉴于近来删除了不少留言,  有留言的开始提意见了, 我觉得有必要说一下怎么留言, 至少怎么在我博客上留言这个事情.

首要的一条就是认识到这个不是你自己的地方, 你爱来不来. 所以, 凡是人身攻击, 脏话, 都是不受欢迎的. 你不能在别人家里干什么, 就不能在别人博客上干什么. 很多人平时文质彬彬, 一到了网上就血气上涌, 变成疯狗, 这样的人的留言, 往往都带着很强的人身攻击, 布满脏话, 这样的留言, 显然是不受欢迎的. 可是失望的是, 即使最不受欢迎, 这样的留言还是互联网上最普遍的.

第二条, 留言是贡献内容的过程, 因此不要贡献没有价值的内容. 在我的博客上, 以下三种留言被认为是没价值的: 1. 沙发, 火星等占位词. 我已经很多次删除这样的留言. 2. 没有阅读全文就发表评论.  这样的留言必然是片面的, 没有价值的. 这样的留言, 一般我很少会提醒: “请读完全文好不好”, 而是顺手删除.  3. 很明显的转贴别人的文章作为留言. 这个是很严重的对互联网的伤害, 我不会成为你的胁从犯. 要贴可以, 给链接.

第三条, 我的地盘不会给任何人背书, 或者帮你谋取经济利益. 自从我的PR上到4以后, 就不断地有人来发软文广告, 或者五毛党来贴政治观点. 请注意, 我不是新浪那样的博客, 我的博客空间是自己掏钱买的, 你来做广告贴伟光正的文章又不付钱, 还拿钱, 我干啥为你做嫁衣呢. 我对超过两个链接的软文广告一律删除.  对于五毛党, 我的博客不会成为你获利的地方. 为了节省中国纳税人的钱, 我对五毛宁可错杀. 因此. 我的博客上你一分钱也拿不到. 五毛的评论不受欢迎.

常常感慨,  为什么不要随地大小便, 不要乱贴小广告和对人要礼貌这样三条 “幼儿园守则” 上都有的东西在互联网上总是缺失呢? 今天跳出来做了一次学前班老师, 我自己都觉得不好意思.

几天前, 偶然看到 SUN 公司 CTO Greg PapadopoulosIT 产业红移学说. 慢慢思考, 做了很多笔记, 有几条写下来.

所谓的红移学说, 就是 IT 公司的计算能力需求是指数增长的. 这个结论没什么奇怪的, IT 产业的摩尔定律说, 每18个月微处理器的计算能力就能翻一翻了. 除此之外, 存储能力, 带宽需求等等, 都是指数增长的, 有供给就有需求,这一点原没有什么大惊小怪的.

但是仔细分析, 对计算能力需求的那些应用里, 是不是所有的需求都是同样的指数增长的呢, 不是. 那么, 有快有慢的时候, 就必然有超摩尔定律增长的和低于摩尔定律增长的. Greg 把超摩尔定律增长的定义为红移, 把低于摩尔定律增长的定义为蓝移. 并且从SUN自身角度指出, 为了让 SUN 跟上 IT 产业的发展大潮, SUN 必须找到那些超摩尔增长的子领域, 把产品销售给超摩尔的应用, SUN 才不会被摩尔定律谋杀.

Greg 的立论基于互联网带宽的超摩尔, 高性能计算需求的超摩尔和软件作为服务的超摩尔速度. 我个人的见解是, 至少目前有5+1 个领域是超 Moore 的. 第一, 复杂的关系计算的发展是超摩尔的. 比如 Netflix 的推荐系统, Google 的 AdSense 系统. 这些关系计算的增长速度, 是超过 2倍/18个月的. 处于提供这些服务的行业, 对计算能力的需求必然是超摩尔的. 因此, 他们必须购置新的 IT 设别, 更新软件效率. 第二, 海量数据的处理的发展是超摩尔的. 互联网数据目前的翻倍速度是 30%/年. 其他领域的数据也有如此的指数规律. 一般情况下来说, 这个速度是低于摩尔律的. 但是任何一家公司海量数据处理的, 都是从无到有发展起来的. 大如 Google, 也不敢说覆盖互联网所有信息. 因此在这十年中, 海量数据处理(特别是搜索, 爬虫, RSS) 将经历从无到有的过程, 其增长, 肯定是超摩尔 的. 第三, 海量带宽的发展是超摩尔的. 以 Flickr YouTube 和 Twitter 为例, 他们的带宽翻倍速度是以天为单位的. 在网络基础设施领域, 中国移动等网络服务商也曾超摩尔发展, 以此为契机很多网络设备服务商如思科华为都超摩尔发展的. 第四就是海量的交互是超摩尔发展的. 网游, 信用卡服务系统都是这方面的例子, 就不一一例举了. 第五可能不为大家熟悉, 就是海量的高性能计算. 这10年内, 世界超级计算机的发展速度是超过摩尔定律的. 在科研领域, 我们清楚的看到高性能计算的需求远远超过 Intel 每年提供的增长, 多达千个万个节点的超级计算机在美国的国家实验室已经很平常. 还有一个额外的是海量的多媒体处理, 全球的电影业, 多媒体业的发展, 横跨前面提到的五个上面, 对每个领域都有超过 摩尔律速度的需求.

这几年这几个子领域的超 Moore 发展, 造成了几个非常有意思的现象.

1 . Google 在超摩尔发展

Google 是一个及其有野心的企业. 首先, 它站在这个时代最快的超摩尔的领域, 海量数据的处理. 它同时还拥有复杂关系计算[Orkut, AdSense], 海量带宽处理 [YouTube] 和海量交互处理 [Talk, Gmail, Google Maps] 三个方面. 这个方阵中的每一个模块, 都是行业的翘楚. 各位读者应该在最近的三个月内都用过Google的不少服务, 而且使用Google 各项服务的总次数相比一年半前肯定是翻倍了. Google 的超摩尔发展和它的策略, 即整合人类所有信息并使之可用 是分不开的. Google 的心大, 舞台就大, 现在爬虫能爬到的信息, 远在人类可用信息之下. 因此, Google 为了完成目标, 必须远快于信息生产速度. 总有一天, Google 抓完了互联网, 增长速度和网络信息的速度一样了, 那Google 也就变为今天的微软了. 20年前或许一人一台计算机是最大的幻想, 谁能想到20年后整合人类信息是不是一定达不到呢. 不过 Google 是善于开创和培育新领域的公司, 因此至少在10年内, Google 依然会超摩尔发展下去.

2 . 超摩尔企业控制了整个产业的需求, 联盟的瓦解和重新结合是常态.

摩尔定律既规定了半导体企业的光明前途, 又是半导体企业的魔咒. 因为半导体的速度提高速度太快, 如果耗用半导体的应用没有发展起来, 或者在18个月内需求量没有更新一倍, 那么, 半导体和硬件制造企业就不会喜欢这样的公司. 想当年 Windows 如日中天的时候, 平均三年就推出一个新版本, 而且每推出一个版本, 能支持前一个版本的硬件都几乎不能完美支持后一个版本. 因此, 操作系统和应用软件在超摩尔发展, 反过来拉着 Intel 超摩尔发展. 而 XP 以降, 微软花了 5 年时间才更新到 Vista, 而且消费者还不喜欢. 个人计算机的增长速度和操作系统的需求速度已经慢于摩尔率. 这时候, Wintel 联盟的瓦解早就是预料中的事情了. 这时候 Intel 和其他硬件制造商, 不需要依靠微软, 也能存活. 为什么呢? 原因是, 他们在 IT 产业链中, 发现了除了软件企业以外的其他的超摩尔的东西, 这个东西, 就是上面说到的5+1, 而最重要的, 是网络计算.

3 . 传统软件企业被摩尔律超过

在解释网络计算之前, 我先解释一下为什么传统的软件企业被摩尔律超过. 一个产业, 如果不是新兴产业, 那么正常的发展速度应该是和国家的 GNP 发展速度相当的. 即使在发展速度最快的中国, 目前也只能做到 120% / 18 月. 这一点, 是摩尔律所不能容忍的. 软件产业, 和其他信息产业一样, 都是社会服务业. 其终极形态, 应当是和 GNP 发展等速的. 简单的说, 有多大的经济需求, 就有多大的软件服务需求. 但是, 产业从来就不是均等的. 当一项新的需求被发现的时候, 因为没有现存的应用, 巨大的需求缺口会拉着原本应该正常发展的产业超速发展. 比如中国的移动电话, 石油产业等等, 都是如此的例子. 在 70-90 年代, 所有的行业都在走信息化的道路. Office, 电算, 电子商务, ERP, CRM 等耳熟能详. 他们的需求缺口相比于产业所能提供的, 都是几个数量级的高. 这种所谓的蓝海让任何跳进去的公司都能发财, 而且发展速度都超过摩尔律. 在此情况下, 硬件企业作为市场的支撑, 也在蓬勃的发展. 到了1999年左右的时候, 互联网的第一次泡沫前, SUN, HP, IBM 等公司靠出售硬件, 大赚了一笔.

然而, 好景不长, 2000年问题解决以后, 发达国家原来轰轰烈烈信息化的公司基本上已经完成基础设施建设了, 软件的需求一下子放缓了. 电子消费品的出现使得个人电脑发展开始放缓, 各大公司因为网络泡沫的破碎也开始紧缩 IT 投资. 软件企业的需求在源头上被紧缩. 另一个致命的打击来自开源软件. 1999 年的互联网泡沫客观上促使了一样东西的普及, 就是开放源代码软件. 传统的软件企业的定价策略是一台计算机安装算一个价钱. 在互联网泡沫时候, 网站需要以超过摩尔律的速度购买计算机, 但是这样就会同样把指数级别的投资送给微软和 Oracle. 因此, 很多公司在购置硬件的同时, 缩减软件投资, 采用免费的开放源代码的软件. 这样, 软件的需求就是一个常数, 这一点一下子拉开了硬件商和软件商地位上的差距. 虽然互联网产业发展了, 软件公司却没有跟着超摩尔发展. 等到微软和 Oracle 等传统软件公司回过神来的时候, 超摩尔的互联网已经把他们扔在了车轮之后. 那么, 应对开源大潮和超摩尔的网络计算, 硬件公司在做什么呢?

4 . SUN, IBM 等硬件提供商放下身段生产平民硬件

如果我们观察从 99年到 2007 年, 这些硬件行业的大哥大做了什么, 我们就能清晰的看到一个个放下身段的巨头. 我们知道, 超摩尔的互联网必然以超过摩尔律的速度需要硬件. 哪个硬件商能赶上此大潮, 就能做弄潮儿. Intel 芯片商要做的, 是提供更加强力的处理器; 存储商做的, 是开发大容量的存储器. 而 SUN 和 IBM 这些系统商来说, 选择就是从阳春白雪走向平民硬件. 当年的 IBM 和 SUN, 固守自己的 RISC CPU 生产线, 投入大量资金开发专有 UNIX 操作系统. 昂贵的售价使得超摩尔的企业不愿采购他们的系统. 此时, 要不固守阵地, 要不另找出路. 我们看到, 他们都开始另找了出路: 出产便宜的基于 x86 架构的硬件, 支持开源的基于服务收费的软件. 他们知道, 只有把硬件做便宜了, 超摩尔速度才能眷顾他们, 否则出路就是 SGI 和 DEC. 只有把软件开源免费送出去, 超摩尔的软件需求才能最后通过软件服务的形式让他们受益. 而一个机器一份拷贝的那种传统软件商业模式, 已经不再实用. 短短几年内, IBM SUN Novel 包括苹果, 都拥抱开源, 拥抱 x86. 我想这不是没有原因的.

5. 如何抓住超摩尔律, 投入新兴 IT 市场?

A. 硬件

硬件厂商在这场互联网浪潮当中扮演了极其重要的角色. 首先, 他们联合了新兴的开放源代码社区, 透过降低了硬件系统的总体成本. 因为此, 硬件商既不需要自己投入大量经费研发软件并把成本转嫁给新兴产业, 又能避免自己口袋中的利益流向传统软件企业. 而网络服务商, 消费类电子制造商和设备提供商, 这些年都是活在超摩尔里的. 如 CISCO, 中国移动, Apple 都是时势造就, 不发财都不行. 当然, 硬件的制造需要较大的投入,除拥有一流的技术外, 尚需要一流的设计和制造. 目前这两点在中国都不具备.

B 软件作为服务/ 软件作为基础设施

前面已经提到传统软件企业, 比如微软, 正在被硬件厂商, 软件服务商, 开源社区合力绞杀. 那么, 做软件就不赚钱了么? 非也. 既然软件已经变成基础设施和服务, 那就应该发挥基础设施和服务的作用. 软件作为服务, 如 Gmail, Facebook, 如 Amazon 的 SimpleDB, 如 Google 的 Documents, 都作为某种服务提供. 前面提到, 因为软件不能按照一台机器一台钱卖掉了, 所以落后于 摩尔律. 虽然这么说, 实际上网络应用对软件的使用需求依然是超摩尔律的. 因为超摩尔的速度造成计算机数量的增长, 系统越来越大, 很多硬件瓶颈就随之出现. 这时候, 传统的单机软件无法解决所有的问题, 必须有一个支持大系统的软件系统出现. 作为提供给网络计算系统的软件, Google 是自产自销, 自己解决基础设施问题. Amazon 和 SUN 则是提供如 EC3, SimpleDB 等工具, 以便把超摩尔的需求转化为自身产品的超摩尔发展. 开源社区也分立出很多创业公司, 提供一揽子的软件解决超摩尔的方法.

我个人看好的是作为软件咨询和软件服务的服务提供商. 机会可以在提供海量信息处理系统, 提供海量带宽处理系统, 提供海量关系处理系统等方面入手. Amazon 的经验让我们看到, 这些软件服务都是可以从系统应用中剥离分立并且产品化的. 在面向互联网的软件服务方面, 我挺看好银杏的.

结尾语: 写完这些, 突然悟到, 所谓的蓝海, 不就是一个超过行业平均水平的新兴子产业么. 想要不陷入和 GNP 一样发展速度的的红海, 就要找到超过行业发展速率的新兴子产业.

8 comments

无法辩论

我说, 要勇于探索未知的世界, 要破墙走向世界. 下面一个留言说:

You think that visiting Wikipedia is ok for you, but actually it’s not ok for everyone in China. Most Chinese people don’t share the same level of understanding as you. This civilization is still too easy to fall into the victim of.. have you ever heard of this:

The great mass of people will more easily fall victim to a big lie than to a small one.
- Adolf Hitler

You assume that every Chinese is as smart as you are, and they wouldn’t fall into lies. That’s not right. Even Hitler himself was elected by people.

翻译过来就是:

你认为访问 Wikipedia 是没什么问题, 可是实际上如果让每个中国人都能访问Wiki并不好. 大多数中国人没有你的理解能力, 我们的文明很容易被成为一些谎言的受害者, 或许你听过这个:

大部分人更加容易被弥天大谎而不是小谎所蒙蔽 — 希特勒

你假设所有中国人和你都一样聪明, 他们不会被谎言蒙蔽. 实际上这个不对, 希特勒自己也是民选的.

面对这种言论, 我无法辩论.

[For someone who are not familiar with the Website Content Rating System in China]

Some websites like xinhuanet are rated:
ratingsymbol_e.gif
EVERYONE
Titles rated E (Everyone) have content that may be suitable for ages 6 and older. Titles in this category may contain minimal cartoon, fantasy or mild violence and/or infrequent use of mild language, but doesn’t contain any content that is opposite to Big Brothers.

All the websites censored are rated:
ratingsymbol_ec.gif
EARLY CHILDHOOD
Titles rated EC (Early Childhood) have content that may be suitable for ages 3 and older. Contains no material that big brothers would find inappropriate.

All the websites abroad that are accessible have no rating, but
ratingsymbol_rp.gif
RATING PENDING
Titles listed as RP (Rating Pending) have been submitted to the GFW and are awaiting final rating. Connect will be reseted if the result not belongs to the previous two categories.

Wikipedia, YouTube, Google Cache and all other blocked websites are rated venomous:
radioactive_logo.gif
because:

  • Alcohol Reference – Reference to and/or images of alcoholic beverages
  • Animated Blood – Discolored and/or unrealistic depictions of blood
  • Blood – Depictions of blood
  • Blood and Gore – Depictions of blood or the mutilation of body parts
  • Cartoon Violence – Violent actions involving cartoon-like situations and characters. May include violence where a character is unharmed after the action has been inflicted
  • Comic Mischief – Depictions or dialogue involving slapstick or suggestive humor
  • Crude Humor – Depictions or dialogue involving vulgar antics, including “bathroom” humor
  • Drug Reference – Reference to and/or images of illegal drugs
  • Fantasy Violence – Violent actions of a fantasy nature, involving human or non-human characters in situations easily distinguishable from real life
  • Intense Violence – Graphic and realistic-looking depictions of physical conflict. May involve extreme and/or realistic blood, gore, weapons and depictions of human injury and death
  • Language – Mild to moderate use of profanity
  • Lyrics – Mild references to profanity, sexuality, violence, alcohol or drug use in music
  • Mature Humor – Depictions or dialogue involving “adult” humor, including sexual references
  • Nudity – Graphic or prolonged depictions of nudity
  • Partial Nudity – Brief and/or mild depictions of nudity
  • Real Gambling – Player can gamble, including betting or wagering real cash or currency
  • Sexual Content – Non-explicit depictions of sexual behavior, possibly including partial nudity
  • Sexual Themes – References to sex or sexuality
  • Sexual Violence – Depictions of rape or other violent sexual acts
  • Simulated Gambling – Player can gamble without betting or wagering real cash or currency
  • Strong Language - Explicit and/or frequent use of profanity
  • Strong Lyrics – Explicit and/or frequent references to profanity, sex, violence, alcohol or drug use in music
  • Strong Sexual Content - Explicit and/or frequent depictions of sexual behavior, possibly including nudity
  • Suggestive Themes – Mild provocative references or materials
  • Tobacco Reference – Reference to and/or images of tobacco products
  • Use of Drugs – The consumption or use of illegal drugs
  • Use of Alcohol – The consumption of alcoholic beverages
  • Use of Tobacco – The consumption of tobacco products
  • Violence – Scenes involving aggressive conflict. May contain bloodless dismemberment
  • Violent References – References to violent acts

When I was in collage, I had two classes in computer science, namely, “Algorithm” and “Data Structure”. These two concepts are universal in both computer programs and software applications, whether on a rescued laptop or a million dollar mainframe. Nowadays, Web becomes tremendously popular, and of course, extends significantly in scalability. Therefore, are there still any general concepts like algorithm and data structure in modeling the web? Here are some incomplete thoughts of mine about the computation and storage model of the web.

1. Google.

For Google search engine, it treats the web as a sorted list based on different keywords. Thus, provided with keywords, the web is sorted by the relevance and PageRank system. Google does both the computation and the storage. For general users, these lists are sorted via some criteria extensively studied by Google; we just get the result out. It seems to me that this is the most successful model for user to access the web. However, sorted list requires both sophisticated sorting mechanism and advanced computational power. Although there are fairly amount of search engines in the world, for most of them, their “sorting quality” or “general coverage” are not as good as Google.

2. Del.icio.us/YouTube/Flickr/Google Base, etc.

For these and other similar sites, they basically organize the web or some special media files on the web on a tag-based system, or preciously, an n-to-n mapping structure. All these four in this category are the leading websites on their own fields. For instance, YouTube is the largest video-sharing website, etc. I would conclude that n-to-n mapping about the media sharing is suitable for socialized website. We can find other success models elsewhere.

3. Amazon, Facebook, Microsoft and Google’s Data Storage API.

According to R/WW, today Microsoft announced Windows Live SkyDrive. Facebook actually quietly released the Data Store API beta recently. Amazon has already had the famous S3 service for a while. They are all treating the web storage as Lookup Table. A closer look shows that all these four data storage API sets are trying to let the user to store heterogeneous media as “object” and support random accessing via keys. For some startups, this feature is critical as the storage scalability is usually an obstacle. Via using these four APIs, the scalability is hidden or moved to these big name companies. Treating the Web as objects will absolutely simplify the storage model and reduce lots of overhead in scalability. Similar to organizing all files under the same folder or on a disk using the file name as the key, sooner they might need some search tool/index/tag mechanism to get rid of the name space nightmare. Additionally, as meta-information should be stored in this system, a search will take twice the database access. Obviously developers have to do more than simply dump the data in. The bottom line is, data storage pools are not big trucks, developers has to maintain them. But I do see the dawn of gird computation here. Here, this is for storage task, but if we can later provide a similar interface to computational task, we will jump into the era of grid computation.

4. Yahoo! Pipe and Google Mashup Editor, FQL, etc.

There is an article about Yahoo! Pipe named “web as a database”. I would rather say that Pipe treads the web as an UNIX file with handy tools dealing with it. Later we got Google Mashup Editor, which is ugly but powerful (at least for me). GME is somehow like Yahoo! Pipe but more natural for programmers. They both tread the Web as a special file (or the concatenate of several files). They provide the “operation system” where you can run the services like sorting and filtering on that particular file. They are making some sort of operation system and binary applications on a Google Inside (or Yahoo! Inside) web. FQL is another funny thing worth mention. It models the Facebook data like people and groups as RDB, and FQL/Facebook platform is RDBMS. My conclusion in this section is Yahoo! Pipe might be a GUI for mashup editing and GME is like a console-based editor. It’s hard to tell which one is better now. Facebook is quite aggressive in reorganizing the web information; guys at Facebook are going to re-model the web in a Facebook manner via the F8 and several millions of users.

5. SUN/SETI@home

While SUN is selling the CPU power at 1$/h to general public, SETI@home utilizes all the idle CPU power around the world. Since I haven’t done much research on the computational model, I just list these two here. The previous one might become the future of grid computation. Actually SUN is very good at grid computation. The second one is the distributed computation. We also have other computation models like P2P computation or other decentralized computation model. While SUN is treating itself as the CPU for the web, SETI@home is treating the Web as the CPU. It’s hard to judge which is superior. SUN might be the first several companies who can develop the actually grid computation on the web, with SETI@home project might be the most powerful computer on the web.

Keep in mind that there is not silver bullet in modeling the web. I do believe that if one wants to setup a big company, he/she does need a big picture about how to model the web and how to setup the model.

Again, all ideas here are immature and need to be refined. You are more than welcome to leave comments and suggestions.