• 上个月搬家,无意间翻出了几年前的大学毕业论文副本,撰文以记之。

    那是在2004年,论文的题目是《P2P and Script Entertainment System》,简称PASES。论文中描述的产品是一种基于web,应用六度分割理论建立的社会化网络。其中的P2P并非指peer to peer技术,而是特指一种“person to person”的社会关系;而Script是指建立在JS基础上的开放应用。现在要描述这个系统只要三个字母就够了——SNS。

    论文于5月答辩,最后的分数是C。同年2月4日,facebook上线。

    糟糕的分数并未浇灭创业的热情。我四处游说,像一个布道者一样四处宣传这个idea,甚至找到了七位数的天使投资。但是糟糕的执行力最终拖垮了这个项目。

    接下来的几个月里,Kathy和我大一的两个室友Jason & Wang Tao合作完成了一个产品,名字叫做”饱蠹“。从初始的功能和定位上讲,饱蠹并不输于facebook,但因为种种原因,它并未在中国复制facebook的成功。

    时隔五年,
    当初的那篇PASES已经成为废纸一张,而我自己也依然是废人一个。庆幸的是这五年的时间终于让我悟到一个道理:伟大的不是创意,而是实现创意的过程。再好的点子,没有团队,没有执行力,没有经年累月的积累,最终也仅仅是空谈。

    热情仍未退
    ,机会仍然存在。SNS从出生到发展再到饱和,这五年的时间仅仅是走完了它的第一阶 段。旧的PASES已经成为废纸,新的PASES正在孕育中。我故意将这个新的产品也命名为PASES,是为了告诉自己在哪里摔倒就要在哪里爬起来。当 然,新产品的特性也很配合这个旧的名字,我希望这次能有一个截然不同的结果。

    这一次,我再给自己五年时间,就从今天开始。

  • 1、打开资源浏览器->工具->文件夹选项

    2、 选择“文件类型”标签,从列表中选择“TTF TrueTyp字体文件”

    3、点击高级,在“操作”中选择“Open”(或“打开”),点击右侧的“编辑”按钮

    4、在弹出的窗口中把“使用DDE”复选框中的对勾去掉,然后一路确定保存

    完成

    此解决方案是网上唯一版本,欢迎转载。

  • 软件工程的目的在于平衡资源、效率与质量之间的平衡,应用到架构与细节设计的层面就会集中在开发效率与质量上。传统的工程哲学认为,在设计开发之初明确需求,在设计开发与维护的全程随时跟踪质量。而对于需求变更的情况,要么让客户为变更的需求支付额外的成本,要么在原有的的架构上做一些拙劣的修补。这两种应对措施一个是阻碍问题,一个是掩盖问题,这种不合作的态度多少显示出传统软件工程在应对变化时的无能。

    是什么造成了这种不合作的态度?是设计。软件工程虽然没有对架构与细节设计做过多的干预,但是对效率和质量却有硬性要求。大多数设计者脑袋里不停回响的三个词就是“效率,效率,效率”,而作为coder出身的他们也更倾向于向coding的过程要效率,于是,层出不穷的快速开发工具、框架,各种名目繁多的设计架构,几乎都不外乎是为了减少开发人员的敲代码的工作量。它们有时习惯于把一段看似复杂的逻辑包装成简单的接口,有时又会为一些简单的任务设计出庞大华丽而又臃肿笨拙的结构。

    我刚刚看过一篇ASP.NET的技术文章,作者仅仅为了生成一段HTML,华丽而又炫技的使用了user control, customized HttpHandler, IIS ISAPI Mapping以及JavaScript的prototype Ajax framework.这个方案的唯一目的是避免页面刷新,唯一优点是提高user control的复用性,却引入了client id conflict的问题(更不用说这样的user control无法支持postback)。这个时候,一个回复者又创造性的提出了“自己维护控件树”的修补方案——我的亲娘啊,这就是我们现在软件工业的设计者和开发者们。

    除此以外,我还亲眼见过那种用xsl来包装JavaScript框架,然后用自定义的server control来生成xsl,然后在user control中进行xslt,然后用Altas框架加载这些user control,最后还用JavaScript去填补Atlas的设计方案。对了,我忘了说作为xml的数据源是怎么来的:将xml数据插入Diesel Engine,然后创建一个web service来query这些数据,接着用一个模块将query来数据插入数据库,然后再从数据库中读取这些数据,然后再将这些数据转换成xml——由于这些不同的工作都由不同的team开发,所以大家都尽可能的发挥的主观能动性来增加系统复杂度:设计web service的人使用了最新的.NET SOA框架,设计读取数据库的人使用了Nhibernate框架。你也许觉得眼熟,这套设计方案非常像那些胎死腹中的“大项目”,实际上,它不仅仅是胎死腹中而已,它甚至把整个公司都拖下了水——因为难以快速响应客户的需求变更,公司错过了最重要的几个订单,接下来几个关键的项目负责人因为缺乏维护的信心或者要做替罪羊而离开公司,最后项目难以为继,公司被兼并,故事结束。

    我觉得那些客户肯定会一头雾水,他们只是想要一个普通的电子商务网站而已,能罗列商品信息,能让客户订购商品,只是这么简单的需求,竟然需要长达近2年的开发周期——他们当然不会知道,他们需要的功能其实在最初的2个月内就开发完成了,剩下的时间就是在将这个项目变得足够大,足够复杂,足够难以维护。

    (待续)

  • 这是《国家宝藏2》中,奥尔梅克文明古城“黄金之城”古迹上的一段铭文,作为中国人,我们可以很自然的认出这些文字就是起始于中国商周时代的“篆书”(又 名“金文”、“钟鼓文”)。虽然这很可能是电影美工的杜撰,不过即使看到中国古代文明对美国当代电影业的影响,也足以令人感到自豪。

    当然,这也可能不仅仅是杜撰。史学界有一种假说就叫做“殷人东渡美洲论” 。简单的说,从人种相似性、文化相似性中可以看出殷商与奥尔梅克文明的相似之处;同时,一些古代文献也记录了一些殷人东渡的事件以及“大风暴”这种造成了文明横跨太平洋的地理基础。

    但这毕竟只是一种假说,我将其理解为类似WOW中暗夜精灵与巨魔的那种联系。不过我不是史学家,所以我可以不负责任的相信这就是100%的历史。无论如何,谁让我是中国人呢~

  • 某饮品广告,一如最近大多数广告一样,走体育路线,不过……

    里面的羽毛球运动员在打足球,排球运动员在打足球,篮球运动员也在打足球——一句话,中国的足球干啥都行,就是不能用来踢。

    这么直白地恶心中国足球的广告真是不多见啊,啊哈哈,笑死我了~~