Category Archives: 科技评论

推荐10月份的《程序员》

  刚刚收到10月份的《程序员》,有几篇文章不错,推荐一下。

  这期组织了一个产品开发、营销和运营的专题。第一篇就是周鸿祎的《用互联网的思想经营产品》,很赞同其中的很多观点。之前谢文有一篇文字,对开发、营销和运营三阶段有很类似的论述。分析Windows Vista这款失败产品那一段,和Joel on software的看法基本一致。

  最近数据挖掘和推荐的话题很火爆,大牛们纷纷加入Resys Group。《程序员》保持了嗅觉灵敏、迅速跟进的特点,这一期里有《商品推荐背后的数学》和《Tag和Tagging》两篇与此有关。

  感兴趣的一篇小文章是《编程习惯》,强调了版本控制、构建系统、自动化测试、代码评阅、重构、代码风格等六大基础设施。刚好和俺前两天写的不谋而合。

  HR的内容越来越多了,例如《建立完整的外包人才体系》、《绩效考核的五种死因》、《绩效实施经验六法》等。今天和朋友吃饭,聊天说起这个来,很多HR部门都有故弄玄虚的坏毛病,交流困难,演进缓慢。在这种不良气氛下,个人的职业成长很多时候更需要依赖悟性和韧劲。

中国万网有安全问题

  keso在讨论中国万网被阿里巴巴收购。刚好,我这两天正为万网怒火中烧。

  无论私人域名还是单位用的pFind域名,一直使用万网的域名服务。虽然贵一点,但感觉服务还好,品牌比较可信。

  昨天发现有域名被指向了121.199.253.187,再Google了一下,发现这个IP地址是一个诈骗网站,被网通电信列入屏蔽黑名单。在线提交了技术支持单,又打电话过去。服务人员态度倒还好,很快改回来,但没解释原因。今天域名被再次指向121.199.253.187。恼火,国庆敏感时期,域名莫名其妙指向诈骗网站,如果被管理机构封掉,说都说不清楚。

  这说明万网有安全问题。作为国内最大的域名服务商,这种表现让人失望。

用户易用性就是容忍犯错和偷懒

  如今无论哪种软件产品都在强调用户体验。本质上,AJAX这一类近乎变态自我折磨的界面技术的热门,不是Geek式的炫耀,而是为了提高用户易用性。

  用户易用性的核心,就是容忍用户犯错和偷懒,就是摆正心态:软件是仆人,而且要达到英国贵族管家的档次。

  举个例子,微软Office到底好在哪里?录入一篇英文文章,不慎把三个字母的常用小词,例如and或the,敲错了顺序,弄成了adn和teh,一敲单词后面的空格或标点符号,MS Word就会自动帮你纠正过来。

  别小看这个功能。一方面,对需求边界的把握是一门艺术:刚刚好有用,又避免算法自作聪明,用户常用到它,却意识不到它的存在。另一方面,实际也有很高技术含量:只有adn和teh才纠错,而其他字母排列不纠错,这是进行过“双手盲打”的人机工程学研究统计的。

  设计者对产品的态度,就可以了解其职业能力和素养。总认为“这是用户该保证的”,不愿意完善异常处理的人,总是抱怨“请给点建设性意见,别老挑刺”的人……都命中注定做不出伟大的产品。记得《项目幸存手册》里说,听到程序员说出“哪来的这么笨的用户”这种混蛋话,就想跳起来骂人。

  “傻瓜式的相机”成就了日本电子产业。对软件和网络行业来说,马太效应更加明显,Jobs式偏执狂席卷一切,拙劣的山寨仿制品,中国式的小聪明,走捷径,长久不了。

  pFind的用户群都是科学家,极有条理和耐心的铁人,主观摸索欲望很强,不喜欢抱怨。对产品来说,这并不是什么好事。年底将发布pFind Studio 2.4版,会集中解决用户易用性问题,不是泛泛改善,要做出吓人的惊喜来。敬请期待。(正在收集改进意见,欢迎被我们软件痛苦折磨过的小白鼠们发邮件来控诉和诅咒。我们准备设立一个奖金,年底颁发给抱怨最多最毒的用户)

  08年初放出“把Mascot打得满地找牙”的口号,现在看来实现比预想快。今天Boss H问两年后,我说“如果pFind免费,拿到50%的份额;如果不免费,拿到33%的份额”,他们说新一版狂言诞生了。真的只是狂妄自大吗,拭目以待。

  BTW:hchi哥今天的PPT引起俺的赞同。要追求完美,不作自甘平庸的笨蛋;又要平常心,不抱怨,不喜怒无常,保持幽默感和倾听能力。同志们,遵从hchi哥的教导,勇敢前进了。

参加Open Party归来

  今天第一次参加Open Party的活动

  先说八卦。有对新婚夫妇,是去年11月在Open Party认识的,所以回来请大家吃喜糖。我没抢到,哇哇哭。

  这次由ThoughtWorks提供场所。俺的隐秘动机,是想刺探传说中的TW是什么样子:

  没有格子间,没有领导单间,除了会议室,全是开放的公共空间,很敞亮。墙上都是白板,贴满了User Story和CRC卡片,连临街的落地窗户也被用上了。游戏间放的是WII,零食还好……基本符合想象,不错不错。

  言归正传,听了如下几个技术报告:

  1. 詹建飞的《OPhone平台和程序开发》
  2. 刘华的《Mozilla架构平台》
  3. Cat Chen的《JavaScript异步编程模式》
  4. 段练的《GWT技术》
  5. 王家宽的《用wxPython开发理财软件》

  其中段练的《GWT技术》留下深刻印象,尤其是他开发的那个Web版化学分子结构编辑器让人叹服,回来查了查,原来专业是化学,业余爱好是编程;另外,Cat Chen的《JavaScript异步编程模式》功底很深,虽然只听了后半截仍然相当震撼;最近在乱看分布式存储方面的技术,成立涛的《Erlang与CouchDB》其实很感兴趣,可惜由于时间冲突,只听了几句。

  BTW:休假即将结束,要收心干正事了。

Beta技术沙龙:利用SNMP进行服务监控

  昨天参加Beta技术沙龙霍炬银杏搜索利用SNMP作服务监控的系统实现

  架构很简洁清楚,容易理解。上层包装也有不少好玩的,例如直连GTalk,无论管理人员的物理位置在哪里,都能实时监控服务状态,进一步手机短信也不难了。

  报告摘要里,对需求的解释很到位:“运营大规模SAAS,对所有服务的状态进行管理和监控是难点之一……”。这正是我感兴趣的原因。日后pFind提供在线云计算服务,必然要考虑这方面的基础设施。其他听众包括,鲜果有道,还有做安全检测的,看来都是有目的而来。

  (顺便提一下,查了查我BLOG的订阅分布:Google Reader、鲜果、抓虾、豆瓣九点……Google Reader还是占压倒性优势)

  银杏主要针对十几种服务进行监控。我想,也许还能支持更细粒度的监控。例如在大规模集群环境中,监控每个节点上的计算进程,以保证MapReduce形式的大规模云计算服务的可靠性。会后交流时,我就此问了霍炬的想法,他没有明确的同意或反对。

  这是第一次见到霍炬真人版。果然是好工程师。逻辑清晰,思路活跃,解决方案明快有效,没有拖泥带水的废话和掩饰。

  会后又和tinyfoolnzinfo聊天(主要是他们说,俺听)。nzinfo第一次见,大侠居然在自己的iPhone上安装gcc和vi,更过分的是还装git版本管理。这么牛,怪不得有资格做tinyfool的竞争对手。nzinfo演示了几种iPhone上最著名的金融终端,包括布隆伯格(Bloomberg)的,各种分析工具还真挺全面。

  tinyfool刚发了一篇BLOG,谈谈对双人编程、单元测试、重构的理解,说得很到位,推荐。

  奇怪,这帮注重实战的工程师,全都开始踅摸起数学、折腾起matlab。难道是传说中的天下武学殊途同归。

推荐Resys Group

  误打误撞,发现牛人团伙。

  原本打算参加这期Beta技术沙龙,听霍炬讲的报告《大规模软件服务的管理和监控》。结果粗心大意,把时间记错了一天,今天下午就闯到奇遇花园咖啡馆去了。

  也幸亏记错了,才能遇到Resys的牛人们线下聚会,正在讲数据挖掘和推荐系统的算法(collaborative filtering),于是就买了饮料,蹭听了一场。

  讲演者是The Ensemble团队的中国成员,传说中的xlvector大侠。具体内容,当然是他们拿到Netflix Prize比赛leaderboard头名的比赛经验。

  下面开始八卦,给没听过Netflix Prize的火星人科普一下:

  美国DVD在线租赁商Netflix于2006年发起的竞赛,悬赏100万美元,只要提交比其现有Cinematch效果好10%的新算法,就获得巨款。Netflix公开了四十八万多用户对一万七千多部电影的上亿条评分记录,要求算法推测另外三百万条记录。同时,100万美元存入银行,每年5万利息作为年度进步奖,发给当年取得最好效果的参赛者。

  Netflix Prize产生了轰动效应。大概是因为,这让公众亲眼目睹,靠数学和编程是如何挣到真金白银的100万美元的。主流媒体,例如《纽约时报》对此给予了大量报道(2009年7月27日的报道是:Netflix Challenge Ends, but Winner Is in Doubt)。技术领域的超女选秀?你终于明白了。对Netflix来说,得到了性能超群的数据挖掘算法,还做了广告,名利双收。

  回来再说xlvector的讲座,八卦内幕相当精彩:一开始你追我赶;接着合纵连横,世界各地的独立的技术和参赛者逐渐融合,成为团队;最后,居然涉及复杂的商业谈判,大鱼吃小鱼,直到非此即彼,参与两个巨型阵营的团战……

  伴随比赛过程,发表了大量的高水平论文,也申请了不少的算法专利,还有不少好玩的讨论:

  比如有人研究了参加者的性别,发现一开始有很多女性参赛者,而且成绩很不错,但最后两个“超级大国”团队里没女性。研究结论是:女性不会投入两三年时间去做一件根本不可能成功的事;男性相对单细胞一些,杀红眼了就钻进去出不来了。

  参赛者Bill Bame在BLOG写到,他发现团队里都是两种人,一种是数学家,一种是工程师,思维方式行事风格截然不同,但两种人都发挥了至关重要的作用。

  The Ensemble团队最后30天工作中,租用了EC2云计算平台进行模型的训练与融合,每小时0.2$。MapReduce模式比较适合离线推荐算法。

  OK,八卦写完了。很久没遇到这么好玩的东西。推荐Resys Google Group。这篇BLOG中链接和引用,都是我回来刚搜索出来的,未必全面准确,大家继续挖掘吧。另外,明天的Beta技术沙龙,我也很期待,号召大家参加。

  最后赞一下奇遇花园咖啡馆。今天交流到最后,xlvector跑到墙边(整堵墙是一块巨大的黑板),用粉笔演算方程。一帮怪人在下面长吁短叹,其他客人头也不抬,继续喝咖啡上网。

照片来自wentrue的flickr

  BTW:只是咖啡馆附近的西直门地铁,实在让人恼火。感觉自己是实验小白鼠,在八卦阵里撞来撞去,难道就没有专业人士稍微做些优化吗。

挺龙芯

  最近有一篇不专业的新闻报道,给龙芯造成了很坏影响。虽然不从事这个领域,还是要挺一下龙芯。具体的技术、法律和产业上的分析,这篇贴子写得很清楚,就不多说了。其实微软、Intel和IBM每年都有上百件类似的专利官司。

  联想到前两年Linux专利案。API或指令集仅仅是约定或接口而已,底层模块怎么去实现它才是核心问题。MIPS指令集是20年前的基础性知识,本就源于大学教授的经典CPU设计课程教案(我研究生《体系结构》课学的就是那本书)。

  这不是特例。比如,无论欧洲、美国、中国三大移动3G标准哪一个,都涉及到CDMA基础,都要给高通专利费,而高通的知识产权,源于二十年前,公司创始人在大学做教授时的研究性工作。

  人人都在别人肩膀上继续创新,没可能也没必要重新发明轮子。

  授权给欧洲的意法半导体以后,龙芯的海外销售有突破。要进一步走向世界,就必须把法律问题清理好。反过来,如果不是好产品,没有市场潜力,那些CR虫子(知识产权律师)也懒得和你谈。

  这一代中国科研团队很辛苦,因为要替之前几十年的空白还账。这不仅仅是指技术,还有商业、法律方面的积累。有些学费,你是绕不过去的。但是,一旦打进圈子,熟悉了游戏规则,建立起自己的势力范围,就反过来,有资格向后续玩家收“保护费”了。这很有挑战性,每一代都有自己的使命。

  无论做什么,踏踏实实都是王道。巴菲特说,如果不打算拥有一支股票二十年,就不要拥有它5分钟,说到底,你必须相信自己投资的东西。这句话也可以用来说科技创新,如果你不相信现在的跟随、积累和尝试在二十年后终能带来回报,就不要做科研。

贝塔技术沙龙:iPhone开发

  参加贝塔技术沙龙,活动位置在西直门奇遇花园,参加的工程师很多,不少牛人,比如《走出软件作坊》的作者阿朱,抓虾的徐易容,sohu论坛的架构师钱宏武等。

  TinyfoolRobin Lu先后讲PPT,由浅到深介绍iPhone开发。Tinyfool上来不废话,敲键盘写demo,实际Run出一个hello world。然后Robin Lu再给出更系统性的介绍,比如常用的设计模式等等。对于我这种不熟悉Apple开发环境的菜鸟来说,学习曲线刚刚好。

  像Tinyfool说的,Object-C语法的确有些怪。但对于接触过多种编程语言,尤其是了解动态语言特征(比如消息映射、委托、依赖注入)的程序员来说,只要把概念对应到具体实现方式,剩下就是Goolge文档、照方抓药了。

  随后的提问讨论也很精彩,而且涉及到技术以外的内容,例如App Store的商业模式等等。有个在Google实习做Android研发的清华学生提了不少好问题,包括iPhone和Android的对比。他每提一个问题,我就暗自点头:“对,我也正想知道。”

  大家的共识是,应用平台的成功取决于能否建立良好的生态体系,让消费者、第三方的开发者都遵守规则,分享收益。当然,一旦领先者找到聚宝盆大赚特赚,而竞争对手却无法从模仿其商业模式中获利,就会有破坏性创新出来搅局。个人觉得Android的开放机制对iPhone的App Store封闭模式有威胁。当年,就是土气但开放的PC战胜了高贵而封闭的MAC。

  96年看比尔盖茨的《未来之路》,预言到2010年,普通消费者就可以用手机从网络上购买游戏和音乐,查询和预订周围好吃的馆子。现在支付宝、点评网、App Store都很普及,一旦3G搬到手机上,Big G的预言就算实现了。只可惜MS并没有在这波竞争中取得优势。

  最后抽奖,我幸运得到了一本《iPhone开发基础教程》,内容的确不错。

IP、IC、IQ卡,通通告诉我密码

  昨天交流里提到了智商问题。回来查了一下。另外还有与此相关的若干八卦。

  先给定义,IQ是一种统计学的离差值。简单说,假设正常人的智力符合正态分布,取平均值为100,IQ值距均值越远,发生概率越低。110-120的占14.5%,120-130的占7%,130-140的占3%,其余0.5%在140分以上。

  影响智商的因素很多,比如遗传、营养、文化和前期教育。对比分布,男性比女性的方差大。也就是说,相对而言,男性里的天才和傻瓜所占比例都高于女性。

  高智商人群患精神疾病的概率比普通人大。有猜测是基因导致的,也有解释是社会原因。两者都受到统计学证据支持。《梦断代码》里就提到过,IT群体里,Asperger’s Syndrome(轻度自闭症)发病率较高。

  一时兴起做了个在线测试,得到的IQ是138。感觉测试题目让拥有先验知识(例如,学过Fibonacci数列)的人得到了不公平优势。也就是说,教育程度的不同、学科专业的不同,都会导致测试偏向性。反过来,记得前两天美国统计,财富排行榜上的人物,教育程度低于均值,但数学能力大大高于正常水平,恰恰说明这帮人的脑瓜真的先天就灵活。

  这就又回到昨天TL聚会讨论的内容,智能的本质,到底是“超大存储+超快检索”(换句话说,足够多的先验知识),还是另一种计算模型呢?

  有人认为,如果有足够大的存储和足够快的计算,现有计算模型已经够了,人的分类效果实际并不比Machine Learning算法高明多少,差别在于人拥有海量先验知识。记得Goolge公司发表过一篇文章也持这种观点,如果真如此,意味着互联网本身的终极目标就是一种智能;

  但也有不少人认为现存计算模型还差得远,实际上人脑的单位计算速度已经比现有电脑慢(当然,人脑是大规模并行计算,总计算量还很惊人),智能根本差异源于架构和模型。而且先天来说,很多底层本能反射不用训练,写在DNA里。

TL聚会,遭遇若干大牛

  今天TopLanguage聚会,见到了崇拜已久的若干大牛的真身,比如传说中的pongbaTinyfool……

  神侃内容:从互联网广告的商业模式开始,到电子商务的信誉体系和物流体系;到语义网络技术、信源挖掘推荐和评价;到人工智能、基因进化和大脑神经机制;到精密机械制造业和破坏性创新;到豆瓣应该完善的若干features需求;到北京美食和若干”驻京办”位置;到房价和经济危机;到国有垄断行业和IT创业;最后到各自工作中正在面对的算法和工程难题。

  能参加TL聚会的,大多有两个特征:技术不错,外向能言(写BLOG有文笔)。所以这样的聚会不会冷场,谈的话题也都绝对有趣儿。

  不幸的事实是,几乎所有人的工作都与互联网行业有关(连googollee的机顶盒也是),俺除外,哇哇哭。